权限细粒度控制
目录:
- 1. 描述
权限细粒度控制是指针对模板内部的小处方面进行权限控制,比如说单元格内容数据,控件、隐藏行列、工具栏,sheet,图表等等。
不同的角色用户登录系统,希望可操作的内容不一样,比如说工具栏按钮不一样,模板预览时,展示的单元格不一样,填报数据时,对某些控件拥有的编辑权限不一样,查看数据时,看到的数据不一样。
FineReport对权限细粒度的控制提供了2种不同的控制方式,一个是完全可视化的权限编辑,另外一个是根据FR提供的内置参数设置条件属性来控制权限。
1.1 权限编辑
打开设计器,点击模板>进入权限编辑,即可在角色面板中选择角色,对权限编辑面板中的单元格、控件、工具栏、sheet等等内容在权限设置面板设置权限,如下图:
注:角色面板中的角色列表自动加载平台系统中的角色,如果注册文件中包含决策平台功能,那么就显示为数据决策系统,如果没有注册该功能,则显示管理平台。
FineReport暂时支持对模板工具栏、控件、单元格、悬浮元素、行列和多sheet这几个方面进行细粒度权限控制。
可视化权限编辑的详细示例请查看权限细粒度之工具栏控制和权限细粒度之模板内容控制。
1.2 参数权限控制
用户认证后会将报表三个固定的默认参数$fine_username、$fine_role、$fine_userposition保存在session中,同时提供两个函数GETUSERDEPARTMENTS()、GETUSERJOBTITLES()来分别获取部门角色的部门和职位,同一报表环境下模板中就可以直接以参数的形式获取到对应的值,然后在模板里面进行筛选判断就可以显示不同数据及样式。
$fine_username:获取登录系统的用户名,比如说登录用户名为Anna,那么$fine_username=Anna;
$fine_role:获取登录系统的角色,如果是管理员用户登录则,$fine_role=SUPERROLE,如果是角色登录,比如说角色数据架构师用户登录,$fine_role=数据架构师,如果是部门角色登录,该参数为空;
$fine_userposition:获取部门职位,返回值为一个由部门和职位组成的数组,比如说人力资源部长职位登录系统,那么$fine_userposition={"departments":"人力资源","jobTitle":"部长"};
GETUSERDEPARTMENTS():获取部门职位里面的部门,比如说人力资源部长职位登录系统,那么GETUSERDEPARTMENTS()=人力资源;
GETUSERJOBTITLES():获取部门职位里面的职位,比如说人力资源部长职位登录系统,那么GETUSERJOBTITLES()=部长。
注:$fine_username、$fine_role、$fine_userposition是我们报表默认的参数,所以调用时大小写必须保持一致。
详细示例请查看权限细粒度之参数控制
索引:
权限细粒度之工具栏控制
权限细粒度之模板内容控制
权限细粒度之参数控制
【帆软|帆软权限细粒度控制】权限细粒度完整示例