每个捆绑包动态添加ROLE

时间:2019-01-03 09:13:31

标签: symfony prepend symfony-security

我想为每个应用程序捆绑添加一些ROLE用户。

为此,我已阅读以下文章: https://symfony.com/doc/3.4/bundles/prepend_extension.html

我已经适应了:

    /**
     * Load Role Hierarchy in security applications
     *
     * @param ContainerBuilder $container
     */
    public function prepend(ContainerBuilder $container)
    {
        $container->prependExtensionConfig('security', array(
            'role_hierarchy' => array(
                // Entity - Company
                'ROLE_COMPANY_READ' => 'ROLE_USER',
                'ROLE_COMPANY_WRITE' => 'ROLE_COMPANY_READ',
                'ROLE_COMPANY_TOTAL' => 'ROLE_COMPANY_WRITE',
            ),
        ));
    }

有了这个,我可以在我的应用程序中使用这些角色。

然后,当我创建管理员用户时,必须将每个ROLE _ * _ TOTAL添加到组权限。 我的SUPER_ADMIN用户也是如此。

我搜索了动态更新ROLE_ADMIN数组的解决方案,并向数组权限添加了一个ROLE。

如果我全部写在security.yml中,结果是:

    role_hierarchy:
        ROLE_COMPANY_READ:       ROLE_USER
        ROLE_COMPANY_WRITE:       ROLE_COMPANY_READ
        ROLE_COMPANY_TOTAL:       ROLE_COMPANY_WRITE
        ROLE_ADMIN:       [ROLE_COMPANY_TOTAL]
        ROLE_SUPER_ADMIN: [ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

0 个答案:

没有答案