Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony,FOSUserBundle:检索所有静态和动态角色_Symfony_Fosuserbundle - Fatal编程技术网

Symfony,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]

使用FOSUserBundle,我有两个地方可以定义用户角色:
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);