我的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()',
),