0

私には機能がありますWebUser getIsAdmin

public function getIsAdmin() {
    $user = $this->loadUser(Yii::app()->user->id);
    if ($user === null) {
        return false;
    }
    return intval($user->user_level_id) == AccountModule::USER_LEVEL_ADMIN;
}

それでも、コントローラーのルールが機能しません

array('allow',
      'actions'=>array('index','create','upload'),
      'users'=>array('admin'),
),

ユーザーが であるようにどこで設定しますadminか?

4

1 に答える 1

3

アクセス制御フィルタのusersプロパティは、ユーザー名のみをチェックします。つまり、Yii::app()->user->name=='admin'. あなたのシナリオでは、expressionプロパティを使用できます。式が true と評価された場合にのみ、アクセスが許可されます。変数は、の$userエイリアスとして式で使用できますYii::app()->user。だからあなたの状態は

array('allow',
      'actions'=>array('index','create','upload'),
      'expression'=>'$user->getIsAdmin()',
),
于 2013-02-03T04:23:48.050 に答える