部署集成 >> 管理平台应用 >> 权限配置 >> 权限典型应用 >> 模板内容的权限控制

模板内容的权限控制

顶( )
最后更新日期: 人发表评论 (点击查看)
角色权限、不同用户登录数据不同、不同用户登录控件是否可用、$fr_username、$fr_password、$fr_authority、条件属性,不同用户角色登陆显示不同数据,权限设置,用户访问模板内容的权限设置
1. 问题描述
希望不同用户登陆系统后,访问相同的模板,所看到的数据是不同,样式不同等。如:访问报表A,中央的账号登陆系统,看到的是全国的数据,而省级用户登陆系统,看到的是该省的数据,依次往下类推。
2. 实现原理
用户认证后会将报表三个固定的默认参数$fr_username、$fr_authority、$fr_userposition保存在session中,同时提供两个函数GETUSERDEPARTMENTS()、GETUSERJOBTITLES()来分别获取部门角色的部门和职位同一报表环境下模板中就可以直接以参数的形式获取到对应的值,然后在模板里面进行筛选判断就可以显示不同数据及样式。
$fr_username:获取登录系统的用户名,比如说登录用户名为Anna,那么$fr_username=Anna;
$fr_authority:获取登录系统的角色,如果是管理员用户登录则,$fr_authority=SUPERROLE,如果是自定义角色登录,比如说自定义角色数据架构师用户登录,$fr_authority=数据架构师,如果是部门角色登录,该参数为空;
$fr_userposition:获取部门角色,返回值为一个由部门和职位组成的数组,比如说人力资源部长角色登录系统,那么$fr_userposition={"departments":"人力资源","jobTitle":"部长"};
GETUSERDEPARTMENTS():获取部门角色里面的部门,比如说人力资源部长角色登录系统,那么GETUSERDEPARTMENTS()=人力资源;
GETUSERJOBTITLES():获取部门角色里面的职位,比如说人力资源部长角色登录系统,那么GETUSERJOBTITLES()=部长。
注:$fr_username、$fr_authority、$fr_userposition是我们报表默认的参数,所以调用时大小写必须保持一致。
3. 参数的控制
3.1 数据集通过权限参数过滤
不同用户登录查看的数据是不同的。在数据集中通过报表默认参数$fr_username进行过滤筛选,在sql中加入过滤筛选语句,即可达到不同的人看不一样的数据。
用户陈羽登陆成功之后只能看到自己的销量,定义的数据集为ds1:SELECT * FROM [销量] where 销售员='${fr_username}',配置好权限以王伟登陆成功之后,模板内容就会自动筛选到王伟的信息了, 以其他用户登陆进去则可以看到其他用户的信息。
3.2 参数界面中如何使用权限参数
在参数界面,控件的值根据权限参数值的改变而显示的值不同,这样通过动态sql获取,增加sql的过滤条件为权限参数名称即可。
用户王伟登陆成功,看到的下拉框控件只有自己的产品,在设置下拉框控件,选择动态sql输入sql语句为:SELECT * FROM [销量] where 销售员='${fr_username}'选择实际值和显示值。这样就实现不同的用户,登陆系统进入报表,下拉框所看到值就不同了。
注:参数界面必须定义控件,参数名为报表默认参数fr_username,因为参数界面传值是通过控件的值来引用的,所以先定义控件才可以把值传到控件chanpin里面,进行筛选数据。如果控件fr_username不希望显示,可以在控件设置,可见的勾去掉即可。
4. 模板的控制
4.1 模板行列通过权限控制
希望不同角色看到的列数不同,行列的颜色不同,这样可以给行列添加条件属性设置行高、列宽、背景等,如果是自定义角色,则可以在公式中通过$fr_authority进行过滤,如果是部门橘色,则需要在公式中通过GETUSERJOBTITLES()函数进行过滤。设置模板的条件属性格式可参考条件属性文档。
若王伟是管理员,孙林的角色名称是销售主管,且为自定义角色,王伟登录的时候可以看到所有的列,而孙林登录的时候只显示地区、销售员、产品和销量,汇总这列看不到。这里就得在汇总这列添加条件属性>列宽,设置为0,公式中写入默认参数$fr_authority='销售主管'判断登录的角色为销售主管,如下图所示:
以孙林登陆成功后,即角色为销售主管登录,访问模板只能看到报表展示了以下内容,如下图所示:
仍然以自定义角色中的示例为例,只是此时孙林的角色不再是自定义角色,而是部门角色,角色名称为销售部门主管,部门为销售部门,职位为主管,那么公式中应该写入两个函数GETUSERDEPARTMENTS()='销售部门'GETUSERJOBTITLES()='主管',如下图:
4.2 填报控件通过权限控制是否可用
不同用户角色控制控件是否可以用,比如有些人进来可以编辑某些单元格,有些人不能编辑。
详细请参照通过权限控制工具栏和控件
4.3 通过权限控制工具栏
不同用户角色看到工具栏不同,即有些人登录可以看到工具栏按钮进行导出或打印,但有些人却看不到导出或打印按钮。
详细请参照通过权限控制工具栏和控件
 
 
 
 
   
文明发言,用心评论
 
应用此篇文章,您:
不费力
研究了一会
琢磨了好久
 
查看全部条>>
返回顶部
Copyright©2019 帆软软件有限公司
苏ICP备18065767号-3