Проверить роль при входе

Всё про контроль доступа пользователей: фильтры, RBAC, проверки
Ответить
virtuozz
Сообщения: 14
Зарегистрирован: 2016.11.11, 14:05

Проверить роль при входе

Сообщение virtuozz » 2016.12.05, 14:07

Подскажите, пожалуйста, как правильно проверять роль пользователя при входе?
Например, чтобы в backend доступ был только пользователям с правом adminPanel.

В LoginForm.php немного изменил метод getUser():

Код: Выделить всё

protected function getUser()
    {
        if ($this->_user === null) {
            $this->_user = User::findByUsername($this->username);

            if (!Yii::$app->user->can('adminPanel', ['user' => $this->_user])) {
                $this->_user = null;
            }
        }

        return $this->_user;
    }
 
Но теперь вообще никого не пускает.

Правила прописал такие:

Код: Выделить всё

public function behaviors()
    {
        return [
            'access' => [
                'class' => AccessControl::className(),
                'rules' => [
                    [
                        'allow' => true,
                        'roles' => ['adminPanel'],
                    ],
                ],
            ],
        ];
    }

Аватара пользователя
ElisDN
Сообщения: 5426
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Проверить роль при входе

Сообщение ElisDN » 2016.12.05, 14:19

Код: Выделить всё

if (!Yii::$app->authManager->checkAccess($this->_user->id, 'adminPanel')) {
    ...
} 

virtuozz
Сообщения: 14
Зарегистрирован: 2016.11.11, 14:05

Re: Проверить роль при входе

Сообщение virtuozz » 2016.12.05, 14:21

ElisDN писал(а):

Код: Выделить всё

if (!Yii::$app->authManager->checkAccess($this->_user->id, 'adminPanel')) {
    ...
}
Отлично! Благодарю!

Ответить