超级角色无法访问继承的角色.. ??
这就是我的角色层次结构的样子:
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')
确实有用..
P.S:我也使用FOS Bundle。
答案 0 :(得分:1)
这是因为当isGranted检查权限时,FOSUB hasRole方法检查你明确拥有该角色。
目前,您拥有ROLE_SALES的权限,但不具有ROLE_SALES本身的权限。这就是当hasRole没有
时,isGranted工作的原因