假设我有三个表:users
、books
和users_books
。
在我的一个观点中,我想显示当前用户可以访问的所有书籍的列表。如果 中存在与用户和书籍匹配的行,则用户有权访问书籍users_books
。
我有(至少)两种方法可以做到这一点:
- 在我在模型
fetchAll()
中的方法中,在表上执行某种类型的操作。books
join
users_books
- 在 Acl 插件中,首先从每本书中创建一个资源。然后,从每个用户中创建一个角色。接下来,根据表允许或拒绝用户访问每个资源
users_books
。最后,在模型的fetchAll()
方法中books
,调用isAllowed()
我们找到的每一本书,使用当前用户作为角色。
我认为最后一个选项是最好的,因为这样我就可以在我的应用程序的其他地方使用 Acl。这将消除执行重复访问检查的需要。
你有什么建议?