我的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
?
答案 0 :(得分:3)
访问控制过滤器中的users
属性仅检查用户名,即检查Yii::app()->user->name=='admin'
。在您的方案中,您可以使用expression
属性。仅当表达式求值为true时才授予访问权限。 $user
变量可以在表达式中用作Yii::app()->user
的别名。所以你的情况将是
array('allow',
'actions'=>array('index','create','upload'),
'expression'=>'$user->getIsAdmin()',
),