我正在使用带有li3_activerecord的带有phpActiveRecord的Lithium。 我回到ORM和协会已经有几年了,我对目前的ACL设置有点困惑。
以下是我的表格及其关联,为简洁而简化:
USERS - $belongs_to role
-----
id
role_id
email
ROLES - $has_many permissions, resources through permissions, users
-----
id
title (eg: Admin, Member, Guest)
RESOURCES - $has_many roles, permissions
---------
id
controller (eg: Members, Products, Categories)
action (eg: Index, Delete, Edit)
procedure (eg: Email, Publish, PrivateMessage)
PERMISSIONS - $belongs_to role, resource
-----------
id
role_id
resource_id
allowed
我得到了一些意想不到的结果,所以我首先想确定关联是否正确。 基本上,用户只能有一个角色。 资源由控制器,操作和可在操作中执行的任何特定过程的组合定义。 通过权限表为用户提供资源权限。
你是否看到我编写ORM协会的方式有什么问题?
答案 0 :(得分:2)
基本上,你的模型是正确的。这是一个非常简单的RBAC架构,可以满足您的需求。实际上,您可能希望在此处查看此插件:https://github.com/tmaiaroto/li3_access它提供了一个开箱即用的RBAC适配器和其他一些不错的插件。
如果您向我们提供有关当前问题的更多详细信息和/或代码,我们可能会帮助您做得更好。