我一直在按照此處的說明(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