我使用 li3_activerecord 将 Lithium 与 phpActiveRecord 一起使用。自从我回到 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 关联的方式有什么问题吗?