【问题标题】:CakePHP ACL confusion, how do I apply ACLs to objects, not actions?CakePHP ACL 混乱,我如何将 ACL 应用于对象,而不是动作?
【发布时间】:2011-01-14 06:32:19
【问题描述】:

谁能建议一种可扩展的设计模式来实现照片和相册的访问控制,每个都有单独的隐私设置(即所有者、组成员、公共)?

我正在使用 CakePHP,我在 ACL 组件上阅读的示例似乎控制对控制器/动作的访问,而不是对象本身。当我尝试追踪时,它似乎失控了

  • /C/R/U/D 权限
  • 每个控制器动作
  • 每个隐私设置(即所有者、组成员、公共)
  • 每张专辑、照片等

尤其是当您每个相册可能有 1000 张照片和照片 habtm 相册时。我是对的还是我完全错过了什么?

有人可以添加一些伪代码来帮助我理解如何解决这个问题吗?或者指出我正确的方向,因为我知道以前在 Flickr 等网站上已经做过。

tia.

【问题讨论】:

  • 你认为 ACL 组件不会做你想做的事,至少不是 AFAIK,开箱即用是对的。我还认为进行记录级别的访问控制可能是 CakePHP 面临的最大弱点(以及性能),所以我真的很想看看人们在这里发布什么解决方案。简而言之,这不是一个简单的问题。
  • 谢谢特拉维斯。让我的问题得到更多的关注。我的另一种方法可能是使用 REDIS 之类的键值数据库作为记录级 ACL,但我需要找到一种将其与 MySQL 集成的方法。

标签: php cakephp permissions acl


【解决方案1】:

实际上 CakePHP 的 ACL 能够进行行访问。请参考http://aidanlister.com/2009/05/implementing-row-level-access-control-in-cakephp/。但我个人不喜欢这种方法。我可能会为我的下一个项目研究 jmcneese ttp://jmcneese.wordpress.com/2010/01/28/rmac-is-dead-long-live-rmac/ 的许可行为。

希望以上 2 个链接对您有所帮助,并愿意了解 cake 社区如何处理行访问效率 :)

【讨论】:

  • 所以它确实做了行锁定,但它看起来相当hackish而且非常复杂。我认为我会采取其中一个或另一个,而不是同时采取两个。我还将研究可允许的行为,感谢您的链接!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
  • 1970-01-01
  • 2012-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多