我一直在按照此处的说明(http://www.yiiframework.com/doc/guide/1.1/en/topics.auth)添加基于数据库的授权和Yii用户。我可以使用用户表中定义的用户登录,但我无法以管理员身份登录。我可以看到我的authassignment表1排,用钥匙用户ID 1 ITEMNAME“管理员” - 这是用来登录用户的IMYii添加管理员
我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('*'),
),
);
}
试图使用'admin'操作会导致403错误。我似乎无法解决这个问题。有什么建议么?
编辑: 所以明知为admin authitem的bizrule是return Yii::app()->user->name === "admin";
,我改变了用户对“管理员”的用户名和它当然工作。我需要更改bizrule来让管理员在authassignment表中以管理员身份登录?
我明白了。因此,'users'=>数组('admin'),属于accessRules()的部分就是它所说的,允许的用户名列表正确吗? – scifirocket 2013-02-19 14:30:44
是的,正确的。还有其他几个标准,例如。 'ips'或'expression'。 – schmunk 2013-02-19 20:26:25