Roles du user et security.context
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
Code:
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));
} |
et que j'affiche roles dans le twig avec un :
Code:
1 2 3 4 5
|
<pre>
{{ roles }}
{{ user }}
</pre> |
j'obtiens :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
Array
Array
(
...
[roles] => array
(
[0] => ROLE_USER,
[1] => ROLE_ADMIN
)
...
) |
Le tableau 'roles' est affiché comme nul alors que, dans le user, le tableau semble renseigné.
Mon user contient une fontion __toString qui fait
Code:
1 2 3 4 5 6 7 8
|
public function __toString()
{
return print_r(array(...
"roles" => $this->getRoles(),
...), true);
} |
Comment est-ce possible ?
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