Организация редиректа на авторизацию
Добавлено: 2018.01.09, 18:36
Использую advanced yii2, стандартный RBAC DBManager, авторизация через фронтенд и бекэнд общая.
Зарыл доступ к backend/index для всех через конфиг:
сделал чтобы через админку не логинило пользователя, заменил $model->login() на $model->loginAdmin()
Все вроде бы нормально, но при логине через фронтедн вручную переходя на backend/index вижу на фоне шаблона админки adminLTE ошибку 403 (доступ закрыт), т.е. индекс-страницу отображает. Хотелось чтобы в любом случае, редиректило на логин.
Попробовал сделать так
но отрабатывает (ошибка 404).
Зарыл доступ к backend/index для всех через конфиг:
Код: Выделить всё
'as access' => [
'class' => 'yii\filters\AccessControl',
'except' => ['site/login', 'site/error', 'site/logout', 'debug' ],
'rules' => [
[
'allow' => true,
'roles' => ['admin'],
],
],
Код: Выделить всё
public function loginAdmin () {
if ($this->validate() && Yii::$app->authManager->checkAccess($this->getUser()->getId(), 'admin')) {
return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600 * 24 * 30 : 0);
}
return false;
}
Попробовал сделать так
Код: Выделить всё
public function beforeAction($action)
{
if (Yii::$app->user->isGuest || !Yii::$app->user->can('admin')) {
$this->actionLogin();
}
return parent::beforeAction($action);
}