【发布时间】:2014-01-21 22:43:19
【问题描述】:
我正在使用 CakePHP 创建一个应用程序,但在尝试找出应用程序的权限系统时遇到了心理障碍。我已将其缩小为几种不同的方法,并且我正在寻找一些信息,说明哪种方法最容易实现和 b) 最有效(显然这两者之间可以进行权衡)。
该应用程序有许多不同的模型,但为简化起见,我将仅使用 User、Department 和 Event。我希望能够在每个模型上单独控制每个用户的 CRUD 权限。
Cake ACL
虽然记录不充分,但我对 ACL 系统的工作原理有了一定的了解,并考虑按如下方式创建 ARO:
[1]user
create
read
update
delete
[2]department
...
等等。这需要用户在许多个不同的组中,而据我所见,Cake 并不容易支持这一点。是否有更好的方法可以做到这一点,或者 ACL 不适合这种情况?
数据库中的权限标志
这个非常简单,显然在用户记录中有一个标志
create_users、read_users 等。对于 4-5 个模型,这意味着 16-20 个权限字段,这让我考虑使用位掩码或使用连接表。其中一个比另一个更好吗?哪一个更快且开销更少?
总的来说,我想我真的很想知道从效率和易于开发的角度来看,哪种方法在应用程序的规模上最有意义。如果您有过去项目的经验,我也愿意接受有关如何解决此问题的其他建议。提前致谢!
【问题讨论】:
标签: mysql database-design bit-manipulation cakephp-2.3