2

我正在使用 FOSUserBundle,我有两个 ROLE:ROLE_A 和 ROLE_B。我希望 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