簡體   English   中英

Symfony超級角色無法訪問基本角色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM