0

我使用 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 关联的方式有什么问题吗?

4

1 回答 1

2

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

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

于 2012-05-14T06:34:32.210 回答