Управление сеансом Различные контроллеры на одной странице в 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 }
Вы можете найти больше способов защитить ваше приложение в книге.