我有一个控制器操作(控制器已通过 JMSDiExtraBundle$this->securityContext
设置):$this->get('security.context')
$user = $this->securityContext->getToken()->getUser();
$groupRepo = $this->getDoctrine()->getRepository('KekRozsakFrontBundle:Group');
if ($this->securityContext->isGranted('ROLE_ADMIN') === false) {
$myGroups = $groupRepo->findByLeader($user);
} else {
$myGroups = $groupRepo->findAll();
}
当我登录到dev
环境并检查分析器时,我可以看到我已ROLE_ADMIN
授予角色,但我仍然获得过滤后的组列表。
我在我的 Controller 和 Symfony 的RoleVoter.php
. $this->securityContext->getToken()
我的 Controller ( )中的 Token 的字符串表示形式和 in 中的一个RoleVoter.php
是相同的,但是当我使用 时$token->getRoles()
,我得到了两个不同的数组。
我的用户和角色通过用户和角色实体存储在数据库中。这是我发现的错误还是我做错了什么?