权限控制

阅读(622) 标签: 权限,

可见性文件可以使用DQL元数据层设计器编辑,存为vsb格式的文件,可以和查询控件一起部署在web服务器上,对于不同的用户可以配置不同的可见文件,使他们在登录web后拥有不同的访问权限。

制作可视文件

可见性设定的结构如下:

可以在菜单中执行系统>导入元数据,将元数据文件中的表导入。

Ø  表可见性

对于每个表,均可以设定为可见、不可见或者条件可见。

当表可见时,可以在DQL中正常查询该表的数据。当表不可见时,在DQL中查询该表数据时会报错。

表设为条件可见时,将根据设定的条件,在查询表的数据时强制过滤。这样,通过使用不同的可见性配置文件,可以使得不同的用户浏览到的记录不同。

如将销售表的表可视属性设为条件可见:

则此时对销售表用DQL查询:  SELECT * FROM 销售,相当于SELECT * FROM 销售 WHERE 雇员ID=1

Ø  字段可见性

在每个表中均可以设定不可视字段名称列表,不可视字段名称与元数据中的字段名相对应,但是不包括测度名、广义外键名及广义字段名等。

设定为不可视的字段,在DQL的查询中将不允许使用。

知识点:

和字典不同,可见性设定会影响DQL的执行结果;而字典通过web应用分析,与DQL的执行无关。

Ø  导入可见性

引用外部可视文件,将可视文件中的表引入到当前可视文件中,可对所选择的文件进行重新加载或编辑操作。导入完成后新引入的可视文件中的表会添加显示在右侧表项列表中,如下图所示:

 

知识点:

系统->合并可视文件使用不同,合并可视文件是将两个可视中的表合并在一个可视文件中,合并后的所有表都会添加到当前字典文件中,合并时如有表重名会提示是否覆盖或替换。导入可视文件是将选择的可视文件引入到当前可视文件中,如有表重名会直接提示该表项已存在

Tag 标签控制初始化界面

官方界面只是查询工具,不具备用户权限系统,客户把查询页面引入到自己的系统后,需要在jsp上部的java代码处根据当前用户准备不同的Tag属性值,达到权限控制的目的。Tag属性详细介绍请参考《程序员参考》查询分析控件

示例:

假如客户系统中有两个用户rootguestroot用户权限最大,可以查询全部指标;guest用户只有部分权限:只能查看个别表的指标。那么我们就可以通过使用变量传递不同的Tag属性值达到权限控制的目的。

java代码判断,如果当前用户是root则通过Tag属性传递如下值:

String visibility= request.getParameter( " visibility" );

visibility = "root.vsb";//root.vsb:对元数据中的所有表都可见

 

如果当前用户是guest则通过Tag属性传递如下值:

String visibility = request.getParameter( " visibility" );

visibility= "guest.vsb";//guest.vsb:仅对元数据中的订单表产品类别和产品表可见

 

  <raqsoft:detailQuery

  qyx="<%=qyx %>"

  dataSource="<%=dataSource %>"

  dictionary=""

  visibility="<%=visibility %>"

  />

 

root用户的查询页面demo如下图:

 

guest用户的查询页面demo如下图: