• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

phpGACL汉语手册(九)扩展权限对象

php 搞代码 4年前 (2022-01-24) 34次浏览 已收录 0个评论

phpGACL中文手册(九)扩展权限对象

扩展权限对象

phpGACL中可以通过配置扩展权限对象(AXO对象)为第三方添加权限。我们已经知道了phpGACL是如何将ARO对象和ACO对象组成一个访问控制策略指令的,这主要用于简单的权限要求如:

LukeARO对象)要求访问”武器室”(ACO对象)的权限

如果这是你所需要的,那么AXO对象就完全是可选的了!

但是由于所有的ACO对象都是相同的,因此如果它们存在很多的话那管理起来将是困难的。如果是这样情况的话,我们可以通过改变思考权限对象方式来使其管理起来更加容易。

AXO对象在许多方面同ARO对象是一样的。这有一个AXO树(是从ARO树中分离出来的)有着自己的组和AXO对象。在处理AXO对象时,以看待ACO对象的方式来看待AXO对象(即”需要权限控制的事物”),而改变看待ACO对象的方式,从”需要权限控制的事物”变成”被要求的运作”。

看待只有AROACO对象的方式:

  • ARO对象:要求权限的事物
  • ACO对象:需要权限控制的事物

看待AROACOAXO对象的方式:

  • ARO对象:要求权限的事物
  • ACO对象:被要求的动作
  • AXO对象:需要权限控制的事物

例如:

一个网站管理员想要管理访问该网站中项目的权限。一个由所有用户组成的ARO树如下所示: Website(网站)
├─Administrators
(管理者)
│ ├─Alice
│ └─Carol
└─Users
(用户)
├─Bob
└─Alan

AXO树中通过操作系统分类项目被组织成: Projects(项目)
├─Linux
│ ├─SpamFilter2
│ └─AutoLinusWorshipper
└─Windows
├─PaperclipKiller
└─PopupStopper

对于每个项目而言,动作是”观看”和”编辑”。这些是ACO对象。

现在我们想要Bob对所有的Linux项目有”观看”的权限,因此可以添加一个ADPBobARO对象与观看的ACO对象和LinuxAXO对象连接在一起。于是我们可以问一个问题:

BobARO对象)要求对一个叫Linux的项目(AXO对象)有”观看”(ACO对象)的权限本文来源gaodai#ma#com搞*!代#%^码$网!搞代gaodaima码

记住AXO是可选的,如果你在调用acl_check()函数时没有指明AXO对象或匹配到一个没有AXO对象的ADP,这是允许的。然而如果只有AXO对象的APD而你却调用没有AXO对象的acl_check()函数,那么系统将失败。

所以一旦你在调用acl_check()函数时指定了AXO对象的话,acl_check()函数就只搜索含有AXO对象的ACL列表。如果AXO对象没有被指定,那么只有不含有AXO对象的列表才会被搜索。基于上述理论也使系统在性能上有所提升。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:phpGACL汉语手册(九)扩展权限对象

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址