如何用Symfony检查选民的角色?

时间:2015-07-09 10:30:24

标签: php symfony

如何使用Symfony检查选民中的角色?

我尝试使用以下

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

为此,我需要注入security.context服务,这将触发循环引用。

  • 我应该注射被认为是不良做法的容器吗?
  • 我应该$user->getRoles()并检查角色'ROLE_ADMIN'是否正确 由$ user?
  • 拥有
  • 如何管理层次结构然后继承角色?

2 个答案:

答案 0 :(得分:0)

您可以尝试注入RoleHierarchyInterface,然后使用第3点。

答案 1 :(得分:0)

另外,您可以使用AccessDecisionManagerInterface

class UserCheckerSomething
{
    private $decisionManager;

    public function __construct(AccessDecisionManagerInterface $decisionManager)
    {
        $this->decisionManager = $decisionManager;
    }

    public function checkAccess(TokenInterface $token)
    {
        return $this->decisionManager->decide($token, ["ROLE_ADMIN"]);
    }
}

"@security.access.decision_manager"注入服务:)