以下是该方案: 我有一个页面列表,任何人都可以使用ROLE_READER访问这些页面。 但是,某些特定的书籍不应该被某些读者访问或读取(即使使用ROLE_READER)。
另一个角色(如ROLE_SPECIAL_READER)的创建不是用户友好的,因此不是一个选项。
因此,我认为我们需要某种黑名单控制。 我的问题是: - 这是否可以使用Symfony-ACL实现? - 如果是,那么,我们该怎么做?
谢谢和最诚挚的问候。
答案 0 :(得分:1)
这是一个简单的用例,我建议您使用Voter
而不是ACL
,因为document表明它可能会因此类用例而过度使用。
如果您使用的是投票人,则write your custom voter可以访问User
个对象以及Page
个对象,您可以决定哪些用户有权使用哪个用户? ;吨
在内部,ACL正在使用它自己的选民来检查权限。它有另一个层,用于将基于实体(ROLE,USER,OBJECT)的权限存储到数据库中,并在需要时获取。
根据我的个人经验(doc也说过),ACL
处理起来并不复杂。
使用选民获得更多好处:
Voter
,ACL
,则无需更改控制器中的代码。希望它对你有所帮助。