在 Yii 中如何设置"users"=>array('admin')?



我的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

访问控制

过滤器中的users属性仅检查用户名,即它检查Yii::app()->user->name=='admin'。在你的方案中,可以使用 expression 属性。仅当表达式的计算结果为 true 时,才会授予访问权限。$user变量可以在表达式中用作 Yii::app()->user 的别名。所以你的条件将是

array('allow',
      'actions'=>array('index','create','upload'),
      'expression'=>'$user->getIsAdmin()',
),

最新更新