2017-01-17 10 views
0

スーパーロールは継承されたロールにアクセスできません。Symfonyのスーパーロールにはベースロールへのアクセスがありません

これが私の役割階層がどのように見えるかです:私は役割「ROLE_BACKEND_USER」を継承していることがわかりますADMINように私にログインすると

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

。 「ROLE_SALES」および「ROLE_USER」。

しかし、ロールを継承していますが、私はROLE_SALESにアクセスできません。 IamはあまりにもFOSバンドルを使用して:

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

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

} 

また$this->get('security.authorization_checker')->isGranted('ROLE_CARMANDO')は仕事..

P.Sを行います。

+0

is_grantedの使い方を示すことができますか? – OlivierC

+0

security.authorization_checkedを使用して、使用に特定の役割があるかどうかを確認します。 –

答えて

1

これは、FOSUB hasRoleメソッドが、isGrantedが権限をチェックするときに明示的に役割を持つかどうかをチェックするためです。

現在、ROLE_SALESの権限はありますが、ROLE_SALES自体の権限はありません。だからisRrantedがhasRoleを使わないときに動作するのはなぜですか

+0

Ohh okayありがとう:) –

関連する問題