历史版本18 :同步用户 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineBI 版本JAR 新增功能
5.1
2020-01-15同步用户的「用户名」支持所有特殊字符;「邮箱」支持包含符号#和&
2020-08-04新增「用户可编辑」选项,勾选后,同步用户可编辑姓名、密码、手机、邮箱,可使用 密码忘记 功能。已存在用户的以上字段在定期同步时将不再更新

1.2 应用场景

企业职工人数是相当多的,并且由于人员的流动性,用户信息一直在变化,如果每次都通过手动添加修改,工作量将会非常大。FineBI 用户同步数据集功能可以实现动态更新平台中的用户信息,使之随着数据库中的用户信息一起变化。

1.3 功能简介

平台提供了同步数据集功能,可将已有的用户信息直接导入到决策系统中,并且与数据库中数据保持一致。

同步用户设置了「同步频率」,到达设定频率后自动同步,不断把数据源中变化的数据同步到平台,可自动进行多次同步;平台用户来源只能是当前同步的这一个数据集,不可能是多个数据集的集合,切换数据集同步就会把之前同步的清空。

2. 部门职务间无层级结构编辑

2.1 准备用户信息表

1)点击下载用户信息表:userinfo.xls

配置同步数据集时,用户名、姓名、密码为必填选项,但用户名和姓名可以选择用户信息表中同一列数据。所以用户信息表中必须包含用户名/姓名任意一项、密码。

用户信息表具体信息如下图所示:

1597220243603876.png

2)将 userinfo 添加到用户自己的数据库中,或用户在自己数据库中新建用户信息表。

2.2 将用户信息定义为服务器数据集

将 userinfo 表所在的数据库与 FineBI 配置数据连接  ,创建包含用户信息的服务器数据集 ,SQL 语句为:

select *from userinfo

注:FineBI 中创建服务器数据集的步骤请参见:服务器数据集

30.png

2.3 开启数据集同步

以管理员身份进入数据决策系统,点击「管理系统>用户管理>所有用户」,点击「同步用户」按钮。如下图所示:

10.png

2)弹出用户更新提示框,选择「清空现有用户信息及权限等设置,重新写入」。如下图所示:

12.png

仅更新现有用户基本信息,不改变权限等设置:

  • 如果现有用户不在服务器数据集中,该用户会被删除

  • 如果现有用户也在服务器数据集中(用户名相同),该用户对应的 ID 不变,权限也都保留

  • 与服务器数据集中不相同的「部门-职位」信息会被全部删除

清空现有用户信息及权限等设置,重新写入:

现有用户、用户权限、部门职位等都会被删除,重新添加新用户。

注:这两种方式在切换同步数据集时,都不会删除角色信息。

2.4 配置同步数据集

选择本文 2.2 节中创建的服务器数据集,配置同步数据集后,点击「确定」按钮。如下图所示:

1591066431813892.png

2.4.1 同步频率

同步服务器数据集的间隔时间,默认为 43200 秒。

同步用户设置了同步频率,可自动进行多次同步,到达设定频率后自动进行同步,不断把服务器数据集中变化的数据同步到平台。

注:同步频率不宜过高,否则会导致后台日志不断刷新,日志体积无限膨胀。

2.4.2 用户可编辑

2020-08-04 及之后的 JAR 新增「用户可编辑」按钮,该按钮默认不勾选,勾选后,具体功能如下表所示:

注:用户同步后,除 忘记密码功能 可使用外,其他 密码策略功能 对同步用户不生效。

用户身份说明
超级管理员

1)再次同步时,平台现存用户的姓名、密码、手机、邮箱字段将不再更新

2)可编辑平台现存用户的姓名、手机、邮箱、密码,不可编辑角色

3)超管可在「账号设置」处编辑姓名、密码、手机、邮箱

4)可在登录页使用 忘记密码 功能

次级管理员

1)可修改有权限用户的姓名、手机、邮箱、密码,不可编辑角色

2)可在登录页使用 忘记密码 功能

3)次管可在「账号设置」处编辑姓名、密码、手机、邮箱

普通用户

1)同步用户可在「账号设置」处编辑姓名、密码、手机、邮箱

2)可在登录页使用 忘记密码 功能

2.4.3 服务器数据集

选择用户信息对应的服务器数据集。平台用户来源只能是当前同步的这个服务器数据集,不可能是多个服务器数据集的集合;切换服务器数据集后,清空之前同步信息。

同步成功后,FineBI 平台不能直接修改用户相关信息,例如密码、手机号、邮箱等等,只能在服务器数据集中修改。

2.4.4 重复验证字段

「重复验证字段」包含两种验证方式:名称和 ID 。

1)用户信息保存位置

注:用户信息保存在 FineDB 数据库的表 中。

字段信息所在数据库所在表
用户名、用户IDFineDBfine_user
职务名称、职务IDfine_post
部门名称、部门IDfine_department
角色名称、角色IDfine_custom_role

2)具体说明

重复验证字段逻辑场景备注
用户名若选择名称,则同步「名称」字段,所在表中的 ID 字段值将由系统随机生成


如果修改数据集中某用户的用户名,平台中用户名也会跟着修改,所对应用户 ID 由系统随机生成,新用户名的用户会丢失之前单独为该用户配置的权限。同理,部门,职位,角色则会丢失继承自部门/职务/角色的权限

若重复验证字段选择职务名称,那么数据源中名称相同但 ID 不同的职务会作为一个职务看待,若同一部门下有两个名称为「财务」的不同职务,会直接显示为同一个职务,其下用户也会合并显示。

但如果两个「财务」属于不同部门,则虽算作一个职务,但因部门-职务关系的不同,其下用户不会合并在一起显示。用户,部门,角色同理

部门名称
职务名称
角色名称
用户ID

若选择 ID,则同步「ID+名称」字段,所在表中的 ID 字段值为同步用户时服务器数据集中的 ID

注:重复验证字段选择 ID,同步后超管 ID 字段由系统生成

如果数据集中某 ID 对应的用户名发生修改,平台中用户名也会跟着修改,权限也会被继承。部门,职位,角色同理

非树数据集中,若重复验证字段选择 ID ,那么职务的 ID 、名称都必须是一对一且唯一不重复的关系,同一 ID 对应多个名称 、同一名称对应多个 ID 都不允许。用户,部门,角色同理

树数据集中,用户、职务、角色的名称与 ID 必须是一对一且唯一不重复的关系

注:前台看不到职务ID,只能通过职务名称来区分、配置权限等。如果出现同一部门下两个不同 id 职务同名的情况,将无法区分和配置权限。故直接要求两者都必须唯一且一一对应的关系,不满足则直接同步失败

部门ID
职务ID
角色ID

2.4.5 字段名称

用户名、姓名、密码、部门名称、职务名称、角色名称、手机、邮箱为对应服务器数据集中的字段名称。

2.4.6 加密方式

有两种加密方式,「内置 SHA 加密」和「自定义密码加密」。

内置 SHA 加密:

在 MD5 加密算法的基础上采用 SHA256 二次加密。

自定义密码加密:

自定义密码加密,即自定义一个密码加密类,加密方式在类中描述,并保存在%FineBI%\webapps\webroot\WEB-INF\classes文件夹中(若无该文件夹,新建即可),自定义加密示例详情参见:简单权限之密码加密

注:自定义加密算法,不管该算法的具体方式是什么,都必须继承 FineReport 的 AbstractPasswordEncode 类,并加上返回判断明文密码和密文密码是否一致结果方法才可行。

2.5 同步效果

注:同步成功后,用户登录密码为本文2.1节用户信息表中的密码,非 fine_user用户表 中加密的密码。

同步用户对话框设置完毕后,点击确定,会显示同步结果面板。如下图所示:

21.png

1)同步完成后,同步用户管理按钮处,会新增两个下拉选项,如下图所示。

  • 立即同步:点击后立即进行一次用户数据集同步

  • 编辑:打开同步用户对话框,可修改同步用户数据集配置

15.png

2)同步成功后,机构部门间没有层级结构。如下图所示:

7.png

3. 部门职务间有层级结构编辑

3.1 准备用户信息表

点击下载用户信息表:部门职务间有层级结构.xls

配置同步数据集时,用户名、姓名、密码为必填选项,但用户名和姓名可以选择用户信息表中同一列数据。所以用户信息表中必须包含用户名/姓名任意一项、密码。

用户信息表具体信息如下图所示:

注:同步用户数据集时,若服务器数据集为树数据集 ,顶层机构的父机构应为空值。如下图所示的 Anna 用户,fid 字段为空。

14.png

2)将「部门职务间有层级结构」添加到用户自己的数据库中,或用户在自己数据库中新建用户信息表。

3.2 将用户信息定义为服务器数据集

将「部门职务间有层级结构」表所在的数据库与 FineBI 配置数据连接  ,创建包含用户信息的服务器数据集 ,SQL 语句为:

select *from 部门职务间有层级结构

注:FineBI 中创建服务器数据集的步骤请参见:服务器数据集

15.png

点击「树数据集」,数据集名称为「树数据集」,构建自数据集选择「用户信息表」,原始标记字段为「did」,父标记字段为「fid」,如下图所示:

注:「依赖所选数据集的父标记字段构建树」的具体介绍请参见:树数据集

16.png

3.3 开启数据集同步

请参见本文 2.3 节内容。

3.4 配置同步数据集

选择本文 3.2 节中创建的服务器数据集,配置同步数据集后,点击「确定」按钮。如下图所示:

1597300039831179.png

各设置项介绍请参考本文 2.4 节。

3.5 同步效果

注:同步成功后,用户登录密码为本文3.1节用户信息表中的密码,非 fine_user用户表 中加密的密码。

同步用户对话框设置完毕后,点击「确定」,会显示同步结果面板。如下图所示:

9.png

1)同步完成后,「同步用户管理」按钮处,会新增两个下拉选项,如下图所示。

  • 立即同步:点击后立即进行一次用户数据集同步

  • 编辑:打开同步用户对话框,可修改同步用户数据集配置

10.png

2)同步成功后,机构部门间有层级结构。如下图所示:

11.png

4. 关闭同步效果编辑

用户若需要关闭同步效果,在「用户管理」界面点击添加用户导入用户,切换到内置用户状态,就可关闭同步效果。如下图所示:

注1:数据更新过程会跳过超级管理员,若数据集中包含超级管理员的信息,那么无法对超级管理员生效。

注2:「添加用户」和「导入用户」的具体步骤请参见 用户管理 

方法一:点击添加用户按钮

16.png

方法二:点击导入用户按钮

17.png

5. 注意事项编辑

 同步用户数据集时一些注意事项及报错请参见:用户同步时报错整理