历史版本13 :多层级权限分配 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

有时用户需要根据不同的层级机构来查看对应的数据。

当公司机构存在树状的层级关系,每个层级想要分配不同的权限。比如总行、分行、支行之间存在树状关系,需要根据不同机构为所属用户分配不同权限,实现效果为总行可以看到所有的数据,分行看到所在分行数据和分行所辖支行所有数据,支行只看自己的数据。

222


1.2 实现思路

FineBI 多层级/树权限的实现步骤为「构建自循环列 > 服务器数据集导入用户(或者用户同步数据集) > 匹配用户登录所在字段 > 根据机构分配权限 > 根据用户分配权限」。


操作步骤
说明
1构建自循环列原始的机构数据在添加到 BI 中以后,通常是不存在树状结构的。通过构建自循环列可以形成树状的机构关系,方便后续根据层级分配权限
2导入用户通过服务器数据集导入数据,或者使用用户同步数据集直接同步数据库中保存的用户表
3匹配用户登录所在字段将用户登录的账号与系统中保存的用户登录权限表账号进行匹配。此步骤是为了在用户登录系统时,根据用户登录的账号,来匹配用户所在机构
4根据机构分配权限根据不同层级的机构分配不同权限,从而在用户登录时根据机构匹配权限
5根据用户分配权限若存在某些用户仅能查看自己相关的数据时,可单独为这些用户分配匹配账号的权限,这样用户登录时仅能看到自己的相关数据

2. 示例编辑

2.1 操作步骤

2.1.1 数据准备

  • 银行机构数据的「机构表」,该机构表包含了总行、分行、支行,及对应的机构码上级机构码,如下图所示:

222

  • 对应机构职员的「用户权限表」,包含了用户账号、密码、所属机构码、部门及职务,如下图所示:

1600237857949887.png

  • 对应机构人员能看到的交易数据即「业务流水表」中,如下图所示:

222

点击下载示例数据:样式数据.zip

2.1.2 创建自循环列

1)进入数据准备>业务包,添加需要的带有层级关系的「机构表」、「用户权限表」和「业务流水表」,配置关联关系并更新数据表,添加关联关系操作可参考 添加表间关联 ,如下图所示:

注1:导入数据时机构、上级机构、机构号等字段需要选择为文本字段,否则在下面的自循环列设置中无法选择机构为显示值。

注2:2020-08-04 之后的BI 版 业务包更新不更新 Excel 数据集关联,可使用全局更新。 

1585711086377871.png

2)选择「机构表」点击编辑,创建自循环列,配置机构表的层级关系。如下图所示:

1585711285318644.png

3)选择根据两列数据分层显示值选择机构机构名称,分层依据 ID 为机构,ParentID 列为上级机构。如下图所示:

1585711752117161.png

4)点击构建关系预览,可看到如下的分层和预览。如下图所示:

1585711947743547.png

5)点击右上角的确定保存该自循环列操作。

2.1 3 导入用户

1)服务器数据集导入用户,这里使用的是「用户权限表」。FineReport 设计器与 FneBI 远程连接使用 服务器数据集 ,建立「用户表」(对于上述给出的 Excel 文件可使用 文件数据集 方式创建),如下图所示:

注:若使用文件数据集,Excel 文件需要放置在%FineBI%\webapps\webroot\WEB-INF\reportlets目录下。

1600239142755791.png

2)在数据决策系统中,选择管理系统>用户管理>所有用户,点击导入用户,如下图所示:

1585713469294010.png

3)选择添加的服务器数据集「用户表」,并设置对应的用户名、密码、部门职务等,如下图所示:

1600239220491867.png

注:也可以使用 用户同步数据集 同步用户。

4)点击确定导入用户。选择管理系统>用户管理>平台使用用户,将这些导入的用户全部添加为PC端使用用户,如需用户有编辑和查看的权限,可参考:BI设计用户BI查看用户 设置为对应的用户,示例将所有新导入用户添加进 BI 数据分析用户,如下图所示:

1585722475678312.png  

2.1.4 权限配置

1)进入管理系统>权限管理>业务包权限,点击登录用户所在字段处的请选择,选择「用户权限表」里的账号字段,即对应用户登录系统的用户名,如下图所示:

1585723304412787.png

2)若要实现的是总行可以看到所有的数据,分行看到所在分行和管辖支行的数据,支行看到自己的数据,因此需要根据所在机构配置用户数据权限。为支行长分行长分配之前添加的「机构表」的使用权限,并点击权限设置按钮,如下图所示:

1600240204821367.png

3)添加过滤条件,选择「机构表」中的机构字段,使它属于(登录者信息)的「用户权限表」下机构字段,点击确定保存设置,如下图所示:

1585723712541213.png

对分行长也做同样的权限设置。

4)此时实现的是职务为分行长支行长的账号查看所属机构的所有数据。而柜员需要只看自己的数据,因此为柜员单独配置权限。为柜员分配之前添加的「业务流水表」的使用权限,并点击权限设置按钮,如下图所示:

1600240262177648.png

5)添加对柜员的过滤设置为业务流水表.柜员号属于(登录者信息)的用户权限表.账号,点击确定,即可在登录查看数据时过滤出柜员号,如下图所示:

1585724051472884.png

2.2 效果查看

1)使用业务包中的「机构表」和「业务流水表」在我的自助数据集中创建自助数据集并开启权限继承,如下图所示:

1585724775733279.png

注:由于示例使用的是超级管理员账号,超级管理员默认为数据处理用户,在普通业务包下创建的自助数据集无法继承基础表权限,因此需要在我的自助数据集下创建,若使用的是数据分析用户来创建自助数据集则直接在普通业务包下创建并勾选 权限继承 即可。

2)使用自助数据集的数据创建业务流水仪表板,如下图所示:

391.png

3)挂出仪表板并在管理系统>权限管理>目录管理中将该仪表板的查看权限分配给分行长、支行长及柜员。如下图所示:

1600240376139762.png

支行长和柜员同理设置。

4)分别使用支行长、分行长、柜员账号登录,查看创建的仪表板。

分行长(账号为99)显示为所有地区号为 22 (即南昌分行),查看仪表板显示包括下属地区的数据,如下图所示:

1585725424498946.png

支行长(账号为101)显示为所有机构号为 22701(即 A 支行)的数据,如下图所示:

1585725523637981.png

柜员(账号为6159)显示仅为本柜员号 6159 的数据,如下图所示:

1585725813641855.png