[英]Symfony Super Roles have no access to Base Roles
超級角色無權訪問繼承的角色。
這是我的角色層次結構:
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')
起作用。
PS:我也使用FOS Bundle。
這是因為FOSUB的hasRole方法會在isGranted檢查特權時顯式地檢查您的角色。
當前,您具有ROLE_SALES的特權,但沒有ROLE_SALES本身的特權。 這就是為什么hasRole不起作用時isGranted起作用的原因
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.