微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 细粒度的访问控制

我熟悉一大堆方法来验证我们正在开发的基于Web的管理应用程序的用户,甚至还有各种技术来密切授权……

但是,我的问题是,您如何建议我实现提供以下内容的细粒度访问控制机制:

>用户属于“角色”或“群组”,例如“销售人员”,“计划”等.
>管理菜单系统仅显示具有与用户角色相关的功能的“页面
>这些页面中的特定功能有限制 – 例如,在“新预订”页面上,“销售人员”用户可以“仅在将来”发出预订,而“编辑预订”页面可以在一周内编辑预订现在’.但是,“规划”用户可能会被允许追溯预订“一周前”并编辑他们自己“任何时间段”的预订,但其他人仅在“直到明天”预订…

我知道我可以实现一个基本的基于角色的系统来满足no.1 …我有一种感觉我应该将整个应用程序拆分成代码块,每个代码块都有自己的objectID-permissionID关系,这样我就可以扫描权限数据库了看看哪些物品是可用的 – 这对我有帮助.

任何想法如何构建表单控件,例如,“销售”用户显示未来的日期(但显示计划用户的“一周前”日期),然后以某种方式将其与POST解析器检查日期是否实际上在预期范围内?

我已经玩过将每个代码块保存到数据库的想法,然后有一个对象表根据权限表动态构建代码,这样服务器上唯一的“文件”就是数据库连接文件

欢迎任何想法……(即使你的背景不是PHP / MySQL)

Zed Shaw在讨论“ACL已经死亡”的原因时,对CUSEC的问题进行了更深入的了解 – http://vimeo.com/2723800

解决方法:

警告,很多Zend Framework领先!

您可以使用Zend_AclZend_Navigation轻松处理1.和2.

对于3号,您将需要查询模型中的ACL对象并手动执行大量操作.您也可以将Zend Framework用于表单,并根据用户角色权限包含特定的表单元素验证器.

编辑:

如果你不想去ZF路线,你至少可以看看如何在ZF中处理ACL.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐