Symfony2, cambiar de usuario sin cerrar sesión

symfony.jpg
Solucionex
14
Ago 13

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 (;