Symfony,FOSUserBundle:检索所有静态和动态角色
使用FOSUserBundle,我有两个地方可以定义用户角色:Symfony,FOSUserBundle:检索所有静态和动态角色,symfony,fosuserbundle,Symfony,Fosuserbundle,使用FOSUserBundle,我有两个地方可以定义用户角色:security.yml(静态)和用户实体(DB,动态)中的per角色属性。如何检索用户(以及继承的)所有角色的完整列表 范例 security: role_hierarchy: ROLE_ADMIN: [ROLE_USER] ROLE_SUPERADMIN: [ROLE_ADMIN] ROLE_SUPERDUPERADMIN: [ROLE_SUPERADMIN]
security.yml
(静态)和用户实体(DB,动态)中的per角色属性。如何检索用户(以及继承的)所有角色的完整列表
范例
security:
role_hierarchy:
ROLE_ADMIN: [ROLE_USER]
ROLE_SUPERADMIN: [ROLE_ADMIN]
ROLE_SUPERDUPERADMIN: [ROLE_SUPERADMIN]
用户角色(实体):
[角色董事会主持人、角色聊天室主持人、角色管理员]
最终结果必须是这样的:
[角色用户、角色管理员、角色董事会主持人、角色聊天主持人]
从Symfony Profiler检查安全面板我制定了以下解决方案(Symfony 3):
通过检查Symfony Profiler的安全面板,我制定了以下解决方案(Symfony 3):
//retrieve dynamic roles and the last static role
$endRoles = $this->get('security.token_storage')->getToken()->getRoles();
//add all inherited roles
$allRoles = array_unique($this->get('security.role_hierarchy')->getReachableRoles($endRoles), SORT_REGULAR);