저는 여기에 지침 (http://www.yiiframework.com/doc/guide/1.1/en/topics.auth)을 따라 DB 기반 인증 및 Yii 사용자를 추가했습니다. 사용자 테이블에 정의 된 사용자로 로그인 할 수 있지만 관리자로 로그인 할 수 없습니다. 나는 사용자 ID 1에 키 itemName에 '관리자'내 authassignment 테이블에 한 행을 볼 수 있습니다 - 로그인을 사용하여 사용자의 메신저입니다Yii 관리자 추가
내 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 오류가 발생합니다. 이 문제를 해결할 수없는 것 같습니다. 어떤 제안?
편집 : 그래서 관리자 authitem의하여 BizRule이 return Yii::app()->user->name === "admin";
것을 알고, 내가 '관리'에 대한 사용자의 사용자 이름을 변경하고 물론했다. 어쨌든 authassignment 테이블의 관리자가 관리자로 로그인하도록 bizrule을 변경하려면 무엇이 필요합니까?
볼 수 있습니다. 그래서 'users'=> array ('admin'), accessRules()의 일부는 허용 된 사용자 이름의 목록이라는 것입니다. – scifirocket
네, 맞습니다. 또한 몇 가지 다른 기준이 있습니다. 'ips' 또는'expression'. – schmunk