У меня есть контроллер Symfony2, в котором я хочу сделать следующее:
try {
return $this->redirect($request->headers->get('referer'));
}
catch (Exception $e) {
return $this->redirectToRoute('home');
}
Это не работает. Идея состоит в том, что с учетом того, что происходит в этом контроллере, разрешения пользователя могут измениться. Поэтому я хочу знать, может ли он по-прежнему иметь доступ к текущему маршруту, если да, перенаправить на текущий маршрут, если нет, перенаправить на дом.
Как я могу это сделать ?
Большое спасибо !
Я не вижу хорошего способа сделать это. Проблема в том, что вам нужно спросить весь компонент безопасности, который использует requestlistners, чтобы запретить доступ. К сожалению, Accesstoken генерируется только один раз, поэтому, если вы снова спросите участников, он не будет использовать новые права пользователя.
Наилучшей идеей может быть сделать перенаправление, а затем перехватить исключение (за исключением списка исключений), где оно действительно происходит, и затем перенаправить.
Других решений пока нет …