Обязательная авторизация frontend и backend

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
АлексейАлексей
Сообщения: 60
Зарегистрирован: 2013.03.20, 14:02

Обязательная авторизация frontend и backend

Сообщение АлексейАлексей »

Добрый день!

Подскажите пожалуйста, как можно сделать обязательную авторизацию, как на backend, так и на frontend?

в первом yii у меня был переопределен controller, в котором было

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

public function accessRules()
    {
        return array(array('allow',
                           'controllers' => array('login'),
                           'actions'     => array('index'),
                           'users'       => array('?'),
                     ),
                     array('deny',
                           'users' => array('?'),
                     ),
        );
    }
в итоге при заходе на сайт меня перебрасывало на форму авторизации, соответственно контроллер login, находился в папке controllers.

во yii2 я примерно сделал также переопределил controller в common
но вот как быть с контроллером login? куда его пихать? во frontend и backend?
я положил его туда и туда, но в итоге у меня ошибка
Not Found (#404)
Page not found.

мне бы хотелось его тоже запихнуть в common, но тогда как его вызвать?
АлексейАлексей
Сообщения: 60
Зарегистрирован: 2013.03.20, 14:02

Re: Обязательная авторизация frontend и backend

Сообщение АлексейАлексей »

проблему с Not Found (#404) Page not found. решил.

но с общим контроллером и представлением нет, помогите пожалуйста или посоветуйте, как быть
Аватара пользователя
BrusSENS
Сообщения: 565
Зарегистрирован: 2012.07.26, 06:51
Откуда: Новороссийск
Контактная информация:

Re: Обязательная авторизация frontend и backend

Сообщение BrusSENS »

АлексейАлексей писал(а):проблему с Not Found (#404) Page not found. решил.

но с общим контроллером и представлением нет, помогите пожалуйста или посоветуйте, как быть
Может вы про Action Логина говорите?

StanAlone экшн в common и используйте в контроллерах

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

    public function actions()
    {
        return [
            'error' => [
                'class' => 'namespace\to\you\action\Class',
            ],
        ];
    }
UPD: сам код экшена примерно такой

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

namespace app\components;

use yii\base\Action;

class HelloWorldAction extends Action
{
    public function run()
    {
        return "Hello World";
    }
} 
Вобщем почитайте про контроллеры https://github.com/yiisoft/yii2/blob/ma ... rollers.md
Native Web - небольшой блог о веб разработке (временно на ремонте)
Режим обслуживания сайта для Yii 2.x.x
АлексейАлексей
Сообщения: 60
Зарегистрирован: 2013.03.20, 14:02

Re: Обязательная авторизация frontend и backend

Сообщение АлексейАлексей »

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

public function actions()
    {
        return [
            'error' => [
                'class' => 'namespace\to\you\action\Class',
            ],
        ];
    }
хм, не понимаю зачем мне общее действие? я не хочу чтобы оно висело мертвым грузом во всех контроллерах(Если я правильно вас понял)

мне нужен общий контроллер и общее представление.
сейчас у меня два одинаковых контроллера и два одинаковых представления в backend и во frontend, мне эта картина не нравится.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Обязательная авторизация frontend и backend

Сообщение maleks »

я бы думал в сторону чтобы нацепить проверку на объект приложения на событие типа EVENT_BEFORE_REQUEST
Ответить