Управление сеансом Различные контроллеры на одной странице в Symfony 2?

Я пытаюсь контролировать сеанс, чтобы запретить доступ к некоторым страницам моего веб-приложения. Способ прост, логическая переменная сеанса. Дело в том, что для каждого действия есть одна страница, но я думаю, что это не элегантно - спрашивать в каждом действии, зарегистрирован ли пользователь или нет. Как я могу сделать это элегантно в архитектуре MVC? Это выглядит дерьмово таким образом. Я думал, что есть родительское действие, которое перенаправляет на последний, тот, который отображает страницу, это правильно? возможно я мог бы сделать проверку там.

public function createAction(Request $request){
        $sess = $this->getRequest()->getSession();
        if ($sess->get('logged') == true) {
        // ---- ACTION CODE GOES HERE ---- //
        }
}

1 ответ

В Symfony2, если разделы сайта, требующие авторизации, находятся по одному и тому же пути, вы можете использовать раздел access_control в конфигурации безопасности:

# app/config/security.yml
security:
    # ...
    access_control:
        - { path: ^/secured/area, roles: ROLE_USER }

Вы можете найти больше способов защитить ваше приложение в книге.

Другие вопросы по тегам