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 回答