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'),
            ),
        );
    }
}
Другие вопросы по тегам