Добавить динамически РОЛЬ для каждого пакета - PullRequest
0 голосов
/ 03 января 2019

Я хочу добавить пользователя 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',
            ),
        ));
    }

С этим я могу использовать эти роли в своем приложении.

Затем, когда я создаю пользователя-администратора, я должен добавить каждую из ролей _ * _ ИТОГО для разрешения группы. То же самое для моего пользователя 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]
...