【发布时间】:2011-08-29 06:31:48
【问题描述】:
我正在开发一个具有像树一样的数据库架构的网站。从上到下我有:
- 一个公司可以有很多
- 可以有很多地方
- 可以有很多的舰队
- 车辆
用户权限系统必须灵活,因为某人可以在树的任何级别获得或限制访问。例如,管理位置 x 的人将默认拥有对位置 x 下方的所有车队和位置 x 下方的所有车辆的完全访问权限。但我也应该能够限制用户对位置 x 以下任何节点的访问。
为这样的权限系统开发架构的正确方法是什么?存储用户可以访问的每个节点是否现实,即使它有点多余?我的目标是能够轻松运行查询,例如获取用户可以访问的所有位置。
【问题讨论】:
-
我没有精力写一个完整的答案,所以我只是评论一下,让其他人填补空白。您刚才描述的一切都可以通过 ACL 使用继承来完成。访问控制列表。您可以在 ACL 中将位置设置为资源,您的队列也可以设置为资源,您可以通过这种方式访问用户。或者,您可以使用嵌套集模型层次结构并完全忽略 ACL,只允许用户访问树中 lFT 和 RGT 值之间的节点。即,从 lft BETWEEN 4 和 54 的位置选择 *。
标签: php mysql web-applications user-roles user-permissions