Управление сеансом Различные контроллеры на одной странице в Symfony 2? - PullRequest
0 голосов
/ 27 сентября 2011

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

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

1 Ответ

1 голос
/ 28 сентября 2011

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

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

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

...