acl.js
(创建时间:2009年06月23日 00:51:00)
Jangogo : 
权限列表
这个文件保存了标准的用户权限花费的列表。
它是一个JSON,一个嵌套结构的Object :
 
  1. ACL_Obj={   
  2.      $:1,  //是否有权限,1代表有权,0代表没有权限   
  3.      descr:{ //权限的友好描述, 支持多语言   
  4.         ChnSimp:"XXXX权限" //简体中文的   
  5.      },   
  6.      ACL_Obj_child1{   
  7.          /*和ACL_obj结构一样的,可以没有子权限对象,也可以有多个*/  
  8.      },   
  9.      ACL_Obj_child2{   
  10.         /*和ACL_obj结构一样的,可以没有子权限对象,也可以有多个*/  
  11.     }      
  12. }  

acl.js 里面就是这样的一个Object, 不过名字为 ACLStd

通过 LaputacACL.exe 这个辅助工具可以生成这个 JSON String , 它的中间文件是 ACL.txt ,工具将以树图的方式展示给你


系统在进入到main页的时候,会在该页创建一个 var ACL={}; 的对象
这个对象会比较当前用户的权限和标准权限ACLStd之间差异,生成一个当前用户的权限对象ACL
一般情况下,我们不需要直接访问这个对象,而是通过 你自己的功能页面的 Util.checkACL()来检测某个权限

Util.checkACL 的详细说明
 
  1. //检测对应模块ID权限      
  2. checkACL:function(s,b){      
  3.      //参数s 是权限字符串,如accounting.voucher      
  4.      //特殊地:      
  5.           //======黑白名单的权限处理      
  6.      //如果是传入NodeID,用*:开头,如果是传入代码(id),用#:开头      
  7.      //如果是科目和外币,可以用*:或者#:开头      
  8.      //格式: #:ac:1001      
  9.           //      *:company:1.2.1      
  10.           //      #:company:C0001      
  11.           //用*:(NodeID)的处理速度更快,因为如果用#:(id代码)的话要先通过数据库取值转换为NodeID      
  12.      
  13.   //参数b,是boolean型,意思是如果没有该权限,是否alert给用户知道没有该权限        
  14.      
  15. }   

Util.getACLSQL 的详细说明
 
  1. //取得基础资料里面的黑白名单限制的SQL      
  2. getACLSQL:function(t,n){      
  3.  //t是基础表名如:ac 、company、goods等   
  4.  //n用于加入权限控制后,如果是要使用隐藏了被禁止的内容。应该传入相应的SQL            
  5. },      

文档中心