Yii добавив администратора
Я следовал инструкциям здесь ( http://www.yiiframework.com/doc/guide/1.1/en/topics.auth), чтобы добавить авторизацию на основе БД и пользователей с Yii. Я могу войти с пользователем, определенным в пользовательской таблице, но я не могу войти как администратор. Я могу видеть 1 строку в моей таблице авторизации с именем элемента 'admin' с ключом к идентификатору пользователя 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('*'),
),
);
}
Попытка использовать действие "admin" приводит к ошибке 403. Я не могу обойти это. Какие-либо предложения?
РЕДАКТИРОВАТЬ: Таким образом, зная, что bizrule для authitem администратора return Yii::app()->user->name === "admin";
Я изменил имя пользователя на "admin", и это, конечно, сработало. Что мне нужно изменить в bizrule, чтобы в любом случае, кто является администратором в таблице authassignment, входил в систему как администратор?
1 ответ
Вы можете указать roles
в правилах доступа см. http://www.yiiframework.com/doc/guide/1.1/en/topics.auth#access-control-filter и http://www.yiiframework.com/doc/api/1.1/CAccessRule
class PostController extends CController
{
......
public function accessRules()
{
return array(
array('allow',
'actions'=>array('admin'),
'roles'=>array('admin'),
),
);
}
}