使用 Symfony-ACL 实现阻止列表
Implementing Block List using Symfony-ACL
场景如下:
我有一个页面列表,任何 ROLE_READER 的人都可以访问这些页面。
但是,某些特定读者不应访问或阅读某些特定书籍(即使 ROLE_READER)。
创建另一个角色(例如 ROLE_SPECIAL_READER)对用户来说不友好,因此不是一个选项。
因此,我认为我们需要某种黑名单控制。
我的问题是:
- 这可以使用 Symfony-ACL 实现吗?
- 如果是,那么我们该怎么做?
谢谢并致以最诚挚的问候。
这是一个简单的用例,我建议您使用 Voter
而不是 ACL
,因为 document 表明对于这种用例来说可能有点过头了。
如果您使用投票器,您可以 write your custom voter 在那里您可以访问 User
对象以及 Page
对象,并且您可以决定哪些用户有权限,哪些用户没有权限't.
在内部,ACL 使用它自己的选民来检查权限。它有另一层将基于实体(ROLE、USER、OBJECT)的权限存储到数据库中并在需要时获取。
根据我的个人经验(医生也这么说),ACL
处理起来并不复杂。
使用选民的更多好处:
- 您可以根据项目分类/要求创建多个
Voter
,
- 以后,如果您改变主意使用
ACL
,则无需更改控制器中的代码。
- 易于调试且重量轻。
希望对你有帮助。
场景如下: 我有一个页面列表,任何 ROLE_READER 的人都可以访问这些页面。 但是,某些特定读者不应访问或阅读某些特定书籍(即使 ROLE_READER)。
创建另一个角色(例如 ROLE_SPECIAL_READER)对用户来说不友好,因此不是一个选项。
因此,我认为我们需要某种黑名单控制。 我的问题是: - 这可以使用 Symfony-ACL 实现吗? - 如果是,那么我们该怎么做?
谢谢并致以最诚挚的问候。
这是一个简单的用例,我建议您使用 Voter
而不是 ACL
,因为 document 表明对于这种用例来说可能有点过头了。
如果您使用投票器,您可以 write your custom voter 在那里您可以访问 User
对象以及 Page
对象,并且您可以决定哪些用户有权限,哪些用户没有权限't.
在内部,ACL 使用它自己的选民来检查权限。它有另一层将基于实体(ROLE、USER、OBJECT)的权限存储到数据库中并在需要时获取。
根据我的个人经验(医生也这么说),ACL
处理起来并不复杂。
使用选民的更多好处:
- 您可以根据项目分类/要求创建多个
Voter
, - 以后,如果您改变主意使用
ACL
,则无需更改控制器中的代码。 - 易于调试且重量轻。
希望对你有帮助。