锂和锂phpActiveRecord - 我的ACL关联是否正确?

时间:2012-05-13 18:46:31

标签: php associations acl lithium phpactiverecord

我正在使用带有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协会的方式有什么问题?

1 个答案:

答案 0 :(得分:2)

基本上,你的模型是正确的。这是一个非常简单的RBAC架构,可以满足您的需求。实际上,您可能希望在此处查看此插件:https://github.com/tmaiaroto/li3_access它提供了一个开箱即用的RBAC适配器和其他一些不错的插件。

如果您向我们提供有关当前问题的更多详细信息和/或代码,我们可能会帮助您做得更好。