在symfony2中,即使在IS_AUTHENTICATED_ANONYMOUSLY允许访问时,如何限制对特定ROLE的访问

时间:2012-11-21 15:26:59

标签: symfony fosuserbundle access-control

我正在使用FOSUserBundle,我有两个ROLES: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连接时,我不希望他被允许查看/测试。 我可能会为每个控制器使用这样的东西:

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

    // ...
}

但是有很多控制器,我认为这不是一个好主意...... 我需要使用多个防火墙或ACL吗?因为我觉得没必要......

0 个答案:

没有答案