Вложенные роли в BjyAuthorize\Provider\Role\Config

Я пытаюсь создать вложенные роли, где разработчик - это роль, которая может иметь доступ ко всему контроллеру / действию, вот мой генеалогический макет:

 'role_providers'        => array(

        'BjyAuthorize\Provider\Role\Config' => array(
            'guest'  => array('children' => array(

                'programador' => array(
                    'children'=>array(
                        'administration'=>array('children'=>array('developer'=>array())),
                    )
                ),
                'conclidiador' => array(
                    'children'=>array(
                        'administration'=>array('children'=>array('developer'=>array())),
                    )
                ),
                'tesorero' => array(
                    'children'=>array(
                        'administration'=>array('children'=>array('developer'=>array())),
                    )
                ),
            )),
        ),
 ),

Это не работает.

Это работает нормально, если я просто оставлю один.

    'role_providers'        => array(

        'BjyAuthorize\Provider\Role\Config' => array(
            'guest'  => array('children' => array(

                'programador' => array(
                    'children'=>array(
                        'administration'=>array('children'=>array('developer'=>array())),
                    )
                ),     
            )),
        ),
    ),

Я хотел бы, чтобы разработчик имел доступ ко всему, затем к администрации, а затем ко всем остальным programador, conclidiador, tesorero на том же уровне и к конечному гостю.

1 ответ

Я пытаюсь подобную вещь, но у меня другой стиль в файле конфигурации:

'BjyAuthorize\Provider\Role\Config' => [
            'guest' => [],
            'user'  => ['children' => [
                'admin' => [],
                'member' => ['children' => [
                    'membervip' => []
                ]],
                'merchant' => ['children' => [
                    'merchantvip'   => []   
                ]],
                'player' => ['children' => [
                    'playerplus'    => []   
                ]]
            ]],
        ],

Мне также пришлось настроить таблицу 'user_role' так, чтобы она соответствовала приведенному выше макету / config, чтобы иметь правильные значения 'user_role'. 'Parent_id', как указано выше.

Поэтому я бы предположил, что вам нужно что-то вроде этого:

'BjyAuthorize\Provider\Role\Config' => [
            'guest' => [],
            'user'  => ['children' => [
                'programador' => [],
                'conclidiador' => [],
                'tesorero' => [],
                'administrator' => ['children' => [
                   'developer' => []
                 ]]
            ]],
        ],

То есть родительский "пользователь" имеет тот же уровень, что и все. Затем определите права доступа к этому уровню в ваших маршрутах / контроллерах. "пользователь" - это базовый доступ ко всем под ролям, тогда разделение находится в "администраторе".

Другие вопросы по тегам