2014-09-03 35 views
1

我正在使用symfony 2.5并试图检查用户是否具有特定角色。这些表在数据库中正确设置并插入的数据是正确的:FOSUserBundle:用户没有得到组的角色

在数据库中存在的用户[email protected]与已经定义的角色a:1:{i:0;s:10:"ROLE_ADMIN";}

我不知道为什么角色映射组admin不正确。调试工具栏告诉我,我只认证为ROLE_USER

代码:

$securityContext = $this->container->get('security.context');  
$securityContext->isGranted('ROLE_ADMIN'); 

if ($securityContext->isGranted('ROLE_ADMIN')) { 
    echo 'crazy coding magic happens here'; 
} 

我发现这个问题(Symfony 2 FOS UserBundle users doesn't get group's role),这似乎与我的问题,但我不满意的答复,因为我不想让检查组 - 访问但角色访问。在我的情况下,组权限可能会在未来发生变化。

感谢您的帮助!

回答

0

好的 - 我似乎已经找到了解决方案。

问题是您必须签出已登录的用户并再次登录以识别组角色映射中的更改。

上面的代码是正确的,在用户再次登录后,将分配正确的角色。

相关问题