【发布时间】:2010-08-06 05:25:30
【问题描述】:
我一直在研究 Cake 的 Auth/ACL 组件。我已经阅读了文档并完成了教程,但我仍然对我可以用它实际完成的工作不满意。我见过couple 的other 方法,但我不能说,因为我真的有一个直接的赢家。在我阅读的任何教程/博客文章/文档中,都没有完全涵盖“所有权”的用例。
我希望描述我的用例,如果有人可以建议一种方法,我会全力以赴,否则我可能只需要自己尝试做一些事情;o)
这基本上模仿了一组简单的博士办公室。
对于 ARO 来说,开始很容易:
- 第 1 组:管理员(当然)
- 第 2 组:看护人
- 第 3 组:成员
组和用户之间存在“hasOne”关系(即一个用户只能属于一个组)。
现在我们使用像 Aidan Lister considers 这样的树状结构 ACO:
/root
/practice
/practice_profile
/practice_updates
/patients
/entries
/profiles
/other_things
每位看护人都可以参加包括他的患者在内的诊所。这使看护人可以访问患者所写的任何内容。最重要的是,患者将仅能够看到/编辑/等...他拥有的任何东西。这在我读过的任何著作中都没有具体涉及。我知道对于文件系统类型的权限,这是司空见惯的,但我什至不想走这条路……
在 Cake 的核心中使用 Auth/ACL,它并没有真正获得这样的权限。它似乎在说“好吧,如果您是 X 组的一员,那么您可以执行功能 Y。”因此,似乎属于members 组的任何用户都可以访问所有其他成员的内容,并且所有caretakers 都可以访问所有实践。
还有其他人遇到过这种用例吗?对进一步阅读有什么建议吗?任何已知的解决方案?
编辑:所以所有的答案都很棒,所以大家都赞成。我强烈建议查看我没有找到的帖子,由 bancer 提供,因为它最终将我指向了一些很酷的东西。但最终,答案被埋在了文档中,我只是第一次没有完全“明白”。此外,当我阅读cakeqs 链接时,有一个 AHA 时刻。所以答案交给本杰明。
【问题讨论】:
-
答案是here。
-
感谢各位的回答(刚刚登录查看)。我会测试一些并再次查看其中一些文档,然后让大家知道我发现了什么。
标签: cakephp acl authentication