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