php – 我应该如何在ACL中构建我的资源树?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 我应该如何在ACL中构建我的资源树?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1722字,纯文字阅读大概需要3分钟。
内容图文
![php – 我应该如何在ACL中构建我的资源树?](/upload/InfoBanner/zyjiaocheng/775/df5ab1334c2449b980f708ca18f5fe9c.jpg)
使用PHP和Zend_ACL,我想创建一个非常灵活的权限系统.我希望能够为特定类型的所有对象以及这些对象的实例分配权限.如果查询对象的特定实例并且资源树中不存在该对象,则可以使用“通用”对象的权限集.我的问题是,这需要嵌套,我无法找到一种方法来做到没有多重继承,Zend_ACL不支持.
一个例子就是这样.一个有学院,课程和活动的在线学习网站.每个活动都属于一门课程,每门课程都属于一个教师.我希望能够允许每个教师角色访问所有课程(和继承的事件),但特定教师希望他们的材料是私人的.因此,我使我的资源树的结构具有每个教师的资源节点,并且每个课程都属于教师节点的教师分支,而不是从通用课程节点分支,这为每个课程提供了默认权限.使用新结构,我如何应用我的通用课程权限?对于课程下面的事件也是如此,如果我希望每个事件只有在父课程可读时才可读,但我还想对每个事件应用一组默认权限,我如何组织树以使每个事件继承从它的父和它的通用节点没有多重继承?
对于不同系统的任何问题或意见或建议都是非常受欢迎的.
解决方法:
您的多重继承问题在您的脑海中 – 除非当然可以在多个院系中 – 等等.构建一个额外的“父资源”,可以从基础“课程”中更改ACL.
您不希望课程直接继承教师权限;你可能希望有人能够编辑该教师的课程(TA或其他东西) – 但教师本身不是吗?
faculties, courses, and events. Each
event belongs to a course, and each
course to a faculty
Parent -> middleman -> child
Courses -> Courses:Faculty2 -> Courses:Faculty2:Course1
Events -> Events:Course1 -> Events:Course1:Event3
等等
这将为教师提供课程组,但仍继承默认课程权限.当您添加每个资源时 – 只需将其作为其资源的父资源,该资源是整个资源的父资源.
如果您希望隐藏特定课程的所有活动 – 您只需在活动上设置权限:课程#
如果您希望能够为教师的所有事件设置权限,您可以在事件:Course1上面添加另一个“中间人”父母,该课程也按教师分组事件:事件:教师2:课程1:事件3
我找到了10个权限系统,你不需要(或想要混淆)多重继承.如果您的访问控制比简单树更复杂,则应重新评估访问控制.
内容总结
以上是互联网集市为您收集整理的php – 我应该如何在ACL中构建我的资源树?全部内容,希望文章能够帮你解决php – 我应该如何在ACL中构建我的资源树?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。