El sistema de seguridad de Symfony2, trae por defecto una utilidad que permite al usuario que está logeado hacerse pasar por otro usuario del sistema sin necesidad de cerrar y abrir sesión. Esta funcionalidad es muy útil para administradores y desarrolladores para poder realizar pruebas con el perfil y credenciales de cualquier usuario sin necesidad de conocer sus datos de acceso.
Para activar esta opción hay que modificar la configuración de seguridad:
# app/config/security.yml
security:
firewalls:
main:
switch_user: true
Además de activar switch_user, solo podrán cambiar de usuario aquellos que tengan el rol “ROLE_ALLOWED_TO_SWITCH”. Este rol se puede cambiar, modificando la configuración de seguridad.
¿Cómo realizamos el cambio de usuario?
Muy fácil, imaginemos que estamos logeados con el usuario solucionex y este usuario tiene el rol ROLE_ALLOWED_TO_SWITCH, simplemente escribimos esta url:
http://prueba.com/blog?_switch_user=javiernuber
Con esto hemos cambiado del usuario solucionex al usuario javiernuber. Para volver de nuevo al usuario solucionex escribimos esta url:
http://prueba.com/blog?_switch_user=_exit
Aquí se indica como cambiar el rol que da acceso al cambio de usuario y también como cambiar el parámetro utilizado en la url.
# app/config/security.yml
security:
firewalls:
main:
switch_user: true
switch_user: { role: ROLE_SOLUCIONEX, parameter:_cambiar_usuario }
Con este cambio, un usuario con el rol ROLE_SOLUCIONEX puede cambiar de usuario escribiendo la siguiente url:
http://solucionex.com/blog?_ cambiar_usuario =javiernuber
Espero que el post os sea de utilidad, saludos (;