【发布时间】:2011-06-27 08:22:03
【问题描述】:
我正在制作一个小型应用程序来处理项目相关信息,但我遇到了 ACL 问题。如何最好地处理以下情况?
我的应用有以下表格:
用户:保存用户信息(用户名、密码、电子邮件、群组等)
组:用户所属的组。我有“管理员”、“经理”和“注册”
角色:注册用户的角色。我有“leader”、“member”和“guest”。
memberships:此表保存用户、角色和项目之间的关系。
projects:保存项目信息
items:项目有几个信息项。此表保留了这些项目。
表有如下关系:
用户:hasMany Memberships,belongsTo Groups。
组:有很多用户
角色:hasMany Memberships
成员资格:属于用户、项目、角色
项目:hasMany Memberships、Items
项目:属于项目
基本上,管理员(或管理员)可以为注册用户分配角色。领导者和成员可以属于多个项目。属于特定项目的人可以编辑该项目的数据及其相关项目。领导者可以从注册用户池中为项目分配成员。
以下是 CRUD 方面的情况:
管理员:所有内容(用户、会员、项目、项目)的完整 CRUD
经理:可以使用“注册”类型的 CRUD 用户,但不能使用“经理”或“管理员”。成员资格、项目和项目的完整 CRUD。
已注册:可以根据角色做不同的事情:
领导者(角色):可以更新自己的用户信息并读取属于其项目的其他用户数据(信息存储在“会员”表中)。可以为他们的项目添加 CRUD 成员资格。可以为自己的项目增删改查项目。可以更新自己的项目。
成员(角色):可以更新自己的用户信息并读取属于其项目的其他用户数据。可以为自己的项目增删改查项目。可以为自己的项目阅读会员资格。可以更新自己的项目。
客人(角色):可以更新自己的用户信息。可以读取项目。
基于上述情况,您认为最好的处理方法是什么?我尝试使用 ACL,但在某处我丢失了它。我尝试使用一些可用的 ACL 插件但没有成功。最大的挑战是处理管理者和管理员的权限创建。请帮忙!
我还不是一个熟练的蛋糕烘焙师,所以请善待。您的建议和推荐将不胜感激。谢谢!
【问题讨论】:
标签: cakephp cakephp-1.3 acl