2012-02-10 8 views
7

Estoy intentando cambiar el rol de un usuario, usando el FOSUserBundle. El problema es: si el usuario está conectado al mismo tiempo, tiene que volver a iniciar sesión para ver el nuevo rol.Cambie el rol de un usuario distante sin tener que reloguear

¿Alguna solución?

+0

Cómo ha llegado su respuesta? Estoy enfrentando el mismo problema ... –

Respuesta

-1

1: Debe habilitar switch_role: true en la configuración de su firewall. 2: A continuación, debe permitir que el rol de ROLE_ADMIN pueda cambiar a otro rol. 3: acaba de hacer un enlace al? _switch_role = userNameCanonical

es principalmente realizado por Symfony security fos no tiene nada que ver con el cambio de roles.

+0

No funciona tampoco ... Vea mi comentario a @Pivasyk. Gracias – Joffrey

0

Prueba esto en su controlador:

$this->get('fos_user.user_manager')->refreshUser($user); 

Ver FOS/UserBundle/modelo/UserManager.php

+0

Gracias por su respuesta, pero no es realmente lo que estoy buscando. Ya puedo actualizar las funciones de un usuario en la sesión actual. Lo que intento hacer es actualizar el rol de un usuario distante. Digamos que soy administrador y quiero cambiar el rol de un usuario conectado. Tendría que volver a iniciar sesión para ver el nuevo rol ... ¿Cómo puedo evitar eso y hacer que cambie instantáneamente? Gracias. – Joffrey

12

De acuerdo con la Security Configuration Reference, hay una opción de always_authenticate_before_granting. No hay mucha información al respecto, pero lo he intentado cargando roles personalizados desde la base de datos y funciona. Parece que cada vez que realiza una nueva solicitud, el componente de seguridad volverá a cargar roles.

Así que si usted quiere asegurarse de que sus funciones se actualizan y vuelven a cargar en su sesión de usuario acaba de establecer esta opción para true en su security.yml:

# app/config/security.yml 
security: 
    always_authenticate_before_granting: false 
+0

Eso parece duplicar el procesamiento de la página en las últimas versiones de Symfony ... :( –

+1

¿Aumentará la base de datos IO? – tom10271

Cuestiones relacionadas