语义层设计之权限控制

润乾报表语义层提供权限控制的功能,允许程序员调用API接口传入用户信息,从而对语义层进行权限控制。控制粒度可以粗到整个视图,也可以细到每一个数据。

润乾报表语义层提供的的权限控制接口是通过会话变量实现的。所谓的会话变量是指和用户个人信息相关的一些变量,比如用户名、岗位、部门、职位、角色等等,有了会话变量,就可以识别这个人的身份,知道这个人拥有哪些权限。用户在登录报表设计系统时,系统会读取该用户的会话变量,并且传递给语义层,当用户基于语义层设计报表时,系统会利用会话变量生成一些过滤条件,并把这些过滤条件强制叠加到报表中,这些过滤条件可以过滤掉这个用户不该看到的数据。于是,多个不同的用户基于同一个语义视图设计报表,却能够保证不同的人看到不同的数据,从而实现了权限的控制。

下面就简单介绍一下如何设置和使用会话变量来实现权限控制。

1、会话变量的设置

会话变量是语义层外部参数的一种,它可以在语义层编辑器的【外部参数】中定义,并可以在语义层内所有的视图中使用,使用方法与普通参数无异。当会话变量用作权限控制时,会话变量的选出方式被设置为【必须选出】。

在语义层设计器中,选择【外部参数,右边就可以看到所有该语义层中包含的参数。点击工具栏中的 【追加】 按钮,新建一个变量,将【参数类型】选择为【会话变量】,这样就定义了一个会话变量,如下图

会话变量.png

回到报表设计器,刷新语义层面板,在语义层面板中 鼠标右键-会话变量,可以输入会话变量的值,如下图

鼠标右键.png

这里输入的会话变量的值只用于测试使用,报表发布后运行的会话变量的值不能由用户自己输入,而是由系统自动的从用户的session中获得的。

2、使用会话变量实现权限控制举例

举例:假如定义了一个会话变量sessionPr,用于用户远程登录到报表设计器时的权限控制。

当用户登录远程设计器时,会输入登录信息,如下图

远程.png

如果王伟是销售员,他输入正确的用户名和密码登录到远程设计器后,系统会自动的从seesion里面获取王伟的身份标识信息,然后把标识信息赋给会话变量sessionPr,当王伟打开销售报表时,他只能看自己的销售记录,系统利用会话变量生成一些过滤条件,并把这些过滤条件强制叠加到报表中,这些过滤条件可以过滤掉其他销售员的销售记录,只留下王伟的销售记录,从而达到权限控制的目的。

如果王伟是销售经理,那么他可以查看所有销售员的销售记录,他输入正确的用户名和密码登录到远程设计器后,系统会自动的从seesion里面获取王伟的销售经理身份标识信息,然后把标识信息赋给会话变量sessionPr,当王伟打开销售报表时,系统读取会话变量的值,看到是销售经理那么就不再叠加强制的过滤条件到报表中,这时王伟可以看到所有销售员的销售记录。

注意:会话变量用于权限控制时用户不能自己输入会话变量的值,会话变量的值是由系统自动的从用户的session中获取的。

这样,我们就通过会话变量实现了权限控制。
引自:润乾报表知识库
原文链接:语义层设计之权限控制
相关文章:润乾报表:远程设计器使用语义层的一个问题解决;语义层设计之数据表视图;润乾报表语义层介绍;语义层设计之指标

其他相关内容: 润乾 ; 商业智能BI联盟 报表软件Java报表商业智能解决方案web报表的扩展功能 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值