我正在使用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吗?因为我觉得没必要......