我是Yii的新手。 我使用本教程:http://www.yiiframework.com/wiki/328/simple-rbac/使管理员角色工作。 我在控制器中的accessRules函数如下所示:
public function accessRules() {
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions' => array('index', 'view', 'create'),
'users' => array('*'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions' => array('update'),
'users' => array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions' => array('delete', 'admin'),
'users' => array('admin'),
),
array('deny', // deny all users
'users' => array('*'),
),
);
}
如果我理解 - 当我尝试查看管理员或删除操作时,它应该从WebUser类执行checkAccess函数。我的checkAccess函数如下所示:
public function checkAccess($operation,$params=array(),$allowCaching=true) {
die("it works!");
if (empty($this->id)) {
// Not identified => no rights
return false;
}
$admin = $this->getState("admin");
return ($operation === 'admin' && $admin == ROLE_ADMIN || $operation !== 'admin');
}
所以应该看“它有效!”但是我得到了
错误403
您无权执行此操作。
我做错了什么?
答案 0 :(得分:0)
Try changing 'users'=>array('admin') to 'roles'=>array('admin')