我最近扩展了CWebUser类,现在它有这样有用的方法:
Yii::app()->user->isAdmin;
Yii::app()->user->isTeacher;
Yii::app()->user->isStudent;
Run Code Online (Sandbox Code Playgroud)
现在有accessControl过滤器的麻烦.
之前,为了只允许管理员访问,我用过:
public function accessRules()
{
return array(
array('allow',
'actions'=>array('index','update', 'create', 'delete'),
'users'=>array('admin'),
),
array('deny',
'users'=>array('*'),
),
);
}
Run Code Online (Sandbox Code Playgroud)
如何重写accessRules只为具有Yii :: app() - > user-> isAdmin属性的用户委派访问权限?
您可以在配置中添加选项"表达式".通常它会获得一个"$ user"作为参数.所以你可以这样做:
array('allow',
'actions'=>array('index','update', 'create', 'delete'),
'expression'=> '$user->isAdmin',
),
Run Code Online (Sandbox Code Playgroud)
请注意,我没有测试过这个,但我认为它会起作用.
看看这里的休息.