日期:2014-05-17 浏览次数:20525 次
phpGACL 系统用双关键字组合唯一标识每一个权限对象( ARO 、 AXO 或 ACO 对象),并且它是权限对象类型。
它是用元组(权限对象类型,节,值)的形式来唯一标识权限对象的。
第一个元组元素是权限对象类型( ARO 、 AXO 或 ACO )。
元组的第二个元素叫节,它是由用户定义的命名权限对象通用类的字符串。多权限对象可以共享同一节名,节名很短但却是描述性的,它常被用在用户界面中的选择框中,因此不要它定义得太长。
节被保存在一个单位名称空间里,它不象组那样可以嵌套使用。节在组/ ARO/AXO 树中不做任何事,它仅仅只是为了帮助维护大量的权限对象。
元组的第三个元素叫值,是用户定义的权限对象名称,值中不能包含空格 (而节可以)。
节和值都是大小写敏感的。
另: 为什么用字符串来标识权限对象而不用看上去更快的整数呢,原因是为了易读性,从下例可以看出用
acl_check('system', 'login', 'users', 'john_doe');
比用
:
acl_check(10, 21004, 15, 20304);
更容易理解。
因为通过上下文可以十分清楚我们所指定的权限对象类型,所以 phpGACL (和本文档)在显示权限对象名时都去掉了权限对象类型而只需要采用" Section > Value" 格式就成了。而在 API 中则要求权限对象的"节"和"值"必须要在函数参数中分别指定(权限对象类型在参数描述中通常是不明白指定的)
例如 ACO 对象的"节 > 值"