多表关联查询时也可通过可见性文件实现权限控制,和查询控件一起部署在web服务器上,对于不同的用户可以配置不同的可见文件,使他们在登录web后拥有不同的访问权限。如表A的某些字段与表B的主键关联,当表B不可见时,查询控件中表A指向表B的广义外键引用字段也会不可见。
示例:
客户系统中有回款单和雇员表,root用户可以查询回款单和雇员指标,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="<%=dct%>"
visibility="<%=vsb%>"
/>
root用户的查询页面demo如下图:
guest用户的查询页面demo如下图: