历史版本24 :权限细粒度控制 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本
10.0

1.2 功能简介

权限细粒度控制是指针对模板内部的小处方面进行权限控制,比如说单元格内容数据,控件、隐藏行列、工具栏,sheet,图表等等。

不同的角色用户登录系统,希望可操作的内容不一样,比如说工具栏按钮不一样,模板预览时,展示的单元格不一样,填报数据时,对某些控件拥有的编辑权限不一样,查看数据时,看到的数据不一样。

2. 权限细粒度编辑

FineReport 对权限细粒度的控制提供了 2 种不同的控制方式,一个是完全可视化的权限编辑,另外一个是根据 FineReport 提供的内置参数设置条件属性来控制权限。

2.1 权限编辑

打开设计器,点击模板>进入权限编辑,即可在角色面板中选择角色,对权限编辑面板中的单元格、控件、工具栏、 sheet 等等内容在权限设置面板设置权限,如下图所示:
222
注1:角色面板中的角色列表自动加载平台系统中的角色,如果注册文件中包含决策平台功能,那么就显示为数据 数据决策系统       如果没有注册该功能,则显示管理平台。

注2:FineReport 暂时只支持对模板工具栏、控件、单元格、悬浮元素、行列和多 sheet 这几个方面进行细粒度权限控制。

注3:可视化权限编辑的详细示例请查看权限细粒度之工具栏控制 权限细粒度之模板内容控制

2.2 参数权限控制

用户认证后会将报表三个固定的默认参数$fine_username$fine_role$fine_position保存在 Session 中。

同时提供两个函数GETUSERDEPARTMENTS()GETUSERJOBTITLES()来分别获取部门角色的部门和职位。

注:不支持模拟计算,模拟计算详情参见:2.4节

同一报表环境下,模板中就可以直接以参数的形式获取到对应的值,然后在模板里面进行筛选判断就可以显示不同数据及样式。

  • $fine_username获取登录系统的用户名,比如说登录用户名为 Anna,那么$fine_username=Anna

  • $fine_role获取登录系统的角色,如果是超管用户登录,则$fine_role=superusers;如果是角色登录,比如说角色数据架构师用户登录,$fine_role=数据架构师;如果是部门角色登录,该参数为空。

  • $fine_position获取部门职位,返回值为一个由部门和职位组成的数组,比如说人力资源部长职位登录系统,那么$fine_position={"departments":"人力资源","jobTitle":"部长"}

  • GETUSERDEPARTMENTS()获取部门职位里面的部门,比如说人力资源部长职位登录系统,那么GETUSERDEPARTMENTS()=人力资源

  • GETUSERJOBTITLES()获取部门职位里面的职位,比如说人力资源部长职位登录系统,那么GETUSERJOBTITLES()=部长

注1:$fine_username、$fine_role、$fine_position 是 FineReport 默认的参数,所以调用时大小写必须保持一致。

详细示例请查看 权限细粒度之参数控制

3.注意事项编辑

3.1 注意事项一

问题描述:权限细粒度控制时,开启同步数据集的时候,在设计器里进行权限编辑 已配置角色中出现了内置数据集里的部门「技术支持总调度」和「技术支持一线技术支持」,但同步数据集里的部门中并没有这两个部门,而且有关「技术支持」的角色部门在决策系统的用户页面里搜索不到。

原因:demo 自带的上报流程用到这两个角色,因此在已配置角色里默认显示了这两个角色,但不影响正常使用。

解决方案:在 FineReport 软件中,点击服务器>服务器配置,分别在「分页预览设置」,「填报页面设置」,「数据分析设置」界面去掉「使用工具栏」前的对勾。具体情况如下所示:

13.png

由于上述步骤把工具栏清空,若想实现权限细粒度的工具栏控制,可点击模板>模板Web属性,添加模板所需要的工具。具体情况如下所示:

9.png



索引:

权限细粒度之工具栏控制

权限细粒度之模板内容控制

权限细粒度之参数控制

权限细粒度完整示例