Symfony 2 : Redirect a user to a page if he has a specific role
Something like this should do it ...
Create a new listener :
class AccessListener{ private$security; private $router; public function __construct($security, $router) { $this->security = $security; $this->router = $router; } public function onKernelRequest(GetResponseEvent $event) { if ($this->security->isGranted('ROLE_DEGRADE')) { $url = $this->router->generate('<route name>'); $event->setResponse(new RedirectResponse($url)); } }}
Add it to your services.yml
:
services: access_listener: class: Acme\DemoBundle\Listener\AccessListener arguments: [ @security.context, @router ] tags: - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest }
Docs :