2

私は FOSUserBundle を使用しており、ROLE_A と ROLE_B の 2 つのロールがあります。ROLE_A を /admin などの特定の領域に制限したい:

access_control:
    - { path: ^/test/, roles: ['ROLE_B', 'IS_AUTHENTICATED_ANONYMOUSLY'] }
    - { path: ^/admin/, role: ROLE_A }

この access_control を使用すると、ROLE_A のみが /admin にアクセスできますが、ユーザーが ROLE_A として接続されている場合、/test の表示を許可したくありません。各コントローラーに次のようなものを使用できます。

public function testAction()
{
    if (true === $this->get('security.context')->isGranted('ROLE_A')) {
        throw new AccessDeniedException();
    }

    // ...
}

しかし、多くのコントローラーでは、これは良い考えではないと思います... 複数のファイアウォールまたは ACL を使用する必要がありますか? 必要性を感じないから…

4

0 に答える 0