Symfony 2 : Redirect a user to a page if he has a specific role Symfony 2 : Redirect a user to a page if he has a specific role symfony symfony

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 :