我一直按照这里的说明 ( http://www.yiiframework.com/doc/guide/1.1/en/topics.auth ) 添加基于 DB 的授权和使用 Yii 的用户。我可以使用用户表中定义的用户登录,但我无法以管理员身份登录。我可以在我的 authassignment 表中看到 1 行,其中 itemname 为“admin”,其密钥为用户 id 1 - 这是我用来登录的用户。
我的 authManager 看起来像这样:
'authManager'=>array(
'class'=>'CDbAuthManager',
'connectionID'=>'db',
'defaultRoles'=>array('authenticated', 'admin'),
),
我使用的特定控制器的访问规则是:
public function accessRules() {
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions' => array('index', 'view'),
'users' => array('*'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions' => array('admin', 'delete','create', 'update'),
'users' => array('admin'),
),
array('deny', // deny all users
'users' => array('*'),
),
);
}
尝试使用“管理员”操作会导致 403 错误。我似乎无法解决这个问题。有什么建议么?
编辑:
所以知道 admin authitem 的 bizrule 是return Yii::app()->user->name === "admin";
,我将用户的用户名更改为 'admin' 并且它当然有效。我需要更改 bizrule 以让 authassignment 表中的管理员以管理员身份登录吗?