如果存在则仅使用ObjectAce并忽略ClassAce

时间:2014-10-24 12:26:38

标签: symfony acl

在Symfony代码和网络上进行了几个小时的研究之后,我决定在这里问一下。

让我们开始吧:

我有一个分配了 ObjectAce ClassAce 的实体,其中 ClassAce 具有 VIEW 属性集,但 ObjectAce

我的目标是,如果 ObjectAce 具有无视图属性,无论具有什么,则AclVoter会拒绝访问该实体的 ClassAce

似乎这不是Symfony的ACL系统的默认行为,但我也找不到使其成为可能的方法。

有什么想法吗?

更新

最后,我决定创建一个自定义security voter。 仅当传入对象是object identity并且class scope为目标时,此安全选民才会起作用。如果security identity没有对所需资源的类访问权限,但可以访问该类类型的一个或多个对象,则选民将授予访问权限,就像安全标识具有类访问权限时一样。在任何其他要求下,选民投弃权票。

它或多或少是一个虚拟类访问,但仍然只针对特定的域对象。

1 个答案:

答案 0 :(得分:1)

制作一个自定义Security Voter,以实现您想要的行为。