我想在 Symfony2 中使用访问控制列表对我的访问控制进行建模。用户具有允许类范围访问的不同角色,但他们也可以具有对象范围访问。默认示例:管理员角色可以编辑所有评论,用户可以编辑自己的评论。
现在问题是检查权限:目前只检查类或对象范围:
$securityContext->isGranted('EDIT', $identity)
identity
要么在哪里
new ObjectIdentity('class', 'Acme\\BlogBundle\\Document\\Comment')
或comment
对象本身。
我认为选民会检查类范围和对象范围的访问,基于comment
对象显然提供自己的类这一事实。现在我将如何实施呢?创建自定义选民?还是我完全错过了其他东西?
e:文档说:“PermissionGrantingStrategy 首先检查所有对象范围的 ACE,如果不适用,则将检查类范围的 ACE”:http://symfony.com/doc/current/cookbook/security/acl_advanced。 html
所以这显然意味着如果存在对象范围,则根本不考虑类范围。:(