Супер роли Symfony не имеют доступа к базовым ролям

Супер Роль не имеет доступа к унаследованным Ролям .. ??

Вот как выглядит моя ролевая иерархия:

role_hierarchy:
ROLE_ADMIN:           [ROLE_BACKEND_USER, ROLE_SALES]
ROLE_SUPER_ADMIN:     ROLE_ADMIN
ROLE_SALES:           ROLE_USER
ROLE_BACKEND_USER:    ROLE_USER

Когда я вхожу в систему как ADMIN, я вижу, что я унаследовал роли «ROLE_BACKEND_USER»; «ROLE_SALES» и «ROLE_USER».

Однако я не могу получить доступ к ROLE_SALES, хотя унаследовал роль.

if(!$this->getUser()->hasRole('ROLE_SALES')) {

throw new AccessDeniedException('Cannot loggin Need ROLE_SALES ');

}

Также $this->get('security.authorization_checker')->isGranted('ROLE_CARMANDO') работает..

П.С .: Я тоже использую FOS Bundle.

0

Решение

Это связано с тем, что метод hasRole FOSUB проверяет, есть ли у вас роль, когда isGranted проверяет привилегии.

В настоящее время у вас есть привилегии ROLE_SALES, но нет самого ROLE_SALES. Вот почему isGranted работает, когда hasRole не работает

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector