Ver índice de contenidos del libro

13.9. Controlando el acceso en los controladores

Para comprobar dentro de un controlador si el usuario actual tiene un determinado rol, utiliza el método isGranted() del contexto de seguridad:

public function indexAction()
{
    // los usuarios 'admin' ven un contenido diferente
    if ($this->get('security.context')->isGranted('ROLE_ADMIN')) {
        // cargar el contenido para usuarios 'admin'
    }
 
    // cargar contenido normal
}

Nota Si utilizas este método en el controlador asociado a una página cuya URL no se encuentre protegida por un firewall, Symfony lanzará una excepción. Como ya se explicó anteriormente, casi siempre es buena idea tener un firewall principal que cubra todas las URL de la aplicación.