表单定制中如何处理应用权限
发布日期:2009-6-26 信息来源:http://www.chysoft.net

如果你的系统中已经存在类似承元软件“资源管理”的权限系统,实现用户、组织、栏目管理,特别是权限的管理,并想在此基础上使用承元业务表单系统进行定制开发,此时表单系统需要集成该权限系统。表单系统对权限系统的集成非常灵活,也非常容易实现。
表单系统处理权限是在权限表达式的基础上进行的,如:设置模板的访问权限实际上是设置模板的权限表达式,设置字段访问权限就是设置字段的权限表达式。权限表达式有一定的规范,相关解释如下:
1、授权对象,如U[admin]代表当标志符为admin的用户,O[aaa]代表标识符为aaa的组织部门,标志符是依据指定的权限系统来设置的,如U[xxx]中的“xxx”有可能是用户的ID,也有可能是用户的其他标志符。
2、权限表达式,权限表达式由授权对象、权限类型及逻辑运算符组成。同一权限类型的由一个大括弧包含,可以包含多个不同的授权对象表达式,左大括弧之前的数字式是权限类型(1 读取,2写入),例:
2{U[admin] || O[x05]}1{G[1]},表示用户admin或者部门x05拥有修改权限,而用户组1拥有读取权限,对于只有一种访问权限的直接设置为U[admin] || O[x05]

表单系统的权限引擎对权限表达式进行拆分和解析,如:在解析权限表达式“2{U[admin] || O[x05]}1{G[1]}”时步骤如下:
1、将权限表达式进行拆分形成执行的语法树,并将授权对象做基本的变量看待。
2、执行语法树,解析到授权对象(如U[admin])时,表单权限引擎需调用指定的权限接口实现类(根据配置文件的设置获取)进行判断了,将传入3个参数“权限环境变量”、对象类型(如:“U”代表用户类型)、对象标识符,并调用实现类的方法public boolean isBelongToObjects(PermissionContext context, char identiferType, String identifer)进行判断。
明白了这个机制,接下来,你应该清楚集成所做的事情了,具体包括:
1、开发提供一个界面,设置模板、模板字段等的权限表达式
该程序界面将以web模态窗口方式打开,使用“权限表达式”作为参数的传递,在javascript中通过window.returnValue=“权限表达式”代码返回权限表达式,通过window.dialogArguments获取已设置权限表达式。
2、编写权限接口实现类,解析授权对象,详细见“权限接口设置”。
3、在表单的“系统配置管理”中设置你的“权限接口实现类”并启用。

粤ICP备11095012号-1
Copyright 2005-2018 深圳市承元软件技术有限公司