Bonjour,
J'ai un soucis assez curieux.
J'ai personnalisé mon bundle sécurité. Au cours de l'authentification, je charge les rôles de l'utilisateur mais ensuite, presque tout se passe comme si l'utilisateur n'avait aucun rôle.
Si je fais ça dans mon contrôleur
et que j'affiche roles dans le twig avec un :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class DefaultController extends Controller { public function indexAction($name) { $user = $this->get('security.context')->getToken()->getUser(); $roles = $user->getRoles(); return $this->render('Cpam35JoBundle:Default:index.html.twig', array('name' => $name, 'user' => $user, 'roles'=> $roles)); }
j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <pre> {{ roles }} {{ user }} </pre>
Le tableau 'roles' est affiché comme nul alors que, dans le user, le tableau semble renseigné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Array Array ( ... [roles] => array ( [0] => ROLE_USER, [1] => ROLE_ADMIN ) ... )
Mon user contient une fontion __toString qui fait
Comment est-ce possible ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public function __toString() { return print_r(array(... "roles" => $this->getRoles(), ...), true); }
J'ai bien une variable $roles dans $user, qui semble bien affectée quand je passe par le __toString mais qui semble vide lorsque je passe par le getRoles()
Quelqu'un a-t-il une idée ?
Merci
Partager