在这篇joomla源代码探析续(二十六)JUser对象和用户权限判
http://www.maycode.com/index.php/hotspot/39-joomla-inspect/325-joomla-source-research.html
文章中,我们提到libraries/joomla/user/authorization.php文件中包含了所有的系统用户权限项。
在JAuthorization是gacl_api的扩展类,其中重要的函数是addACL和acl_check。addACL有七个参数,
$aco_section_value, $aco_value, $aro_section_value, $aro_value, $axo_section_value=NULL, $axo_value=NULL, $return_value=NULL
我们来看一段权限项的初始化定义:
我们看到$aco_section_value实际对应的是组件,而$aco_value对应组件的task,$aro_section_value通常都是users了,而$aro_value则对应是权限请求角色,$axo_section_value对应的是content,$axo_value是all,由此我在上一文章中关于users的想法还是错了。
gacl是一个自顶向下的权限系统,权限有权限分组,请求对象有请求对象分组,users是请求对象的分组。
在类初始化过程中,对于几十项系统权限项做了定义,如果使用check_acl以及自定义权限请参考 JUser对象和用户权限判