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

目录:

1. 概述编辑

1.1 版本

报表服务器版本JAR新增功能
5.1--
5.1
2020-01-15

「用户名」支持所有特殊字符

「邮箱」支持包含符号 # 和 &

5.12020-08-04新增「用户可编辑」选项,勾选后,同步用户可编辑姓名、密码、手机、邮箱,可使用 忘记密码 功能。已存在用户的以上字段在定期同步时将不再更新。
5.1.72020-11-05支持多源用户,在添加/导入用户存在状态下可「同步用户」,平台多种类型用户可并存
5.1.82020-12-04定时同步频率支持使用表达式

1.2 应用场景

一个企业的职工人数是相当多的,并且由于人员的流动性,用户信息一直在变化,如果每次都通过手动添加修改,工作量将会非常大。

用户同步数据集功能可以实现动态更新平台中的用户信息,使之随着数据库中的用户信息一起变化。

1.3 功能简介

管理员可以先创建服务器数据集,设置定期从数据集同步用户,保持用户信息及时更新。

2. 准备同步用户数据编辑

同步的用户数据来自服务器数据集,支持用户部门有层级和无层级两种。

用户可根据自身用户结构选择其中一种。

2.1 部门职务间无层级结构

本节示例所用的用户信息表部门职务间无层级结构,如下图所示:

image.png

2.1.1 准备用户信息表

准备一张用户信息表,表结构如下图所示:

点击下载用户信息表:导入用户1.xlsx

注:导入用户时,用户名、姓名、密码为必填项,此外内容可以不填。

image.png

2.1.2 创建服务器数据集

使用 Navicat 等第三方工具,将上表导入数据库,并建立系统与该数据库的 数据连接 。下文将以 FRDemo 数据库为例。

管理员登录数据决策系统,点击「管理系统>数据连接>服务器数据集」,创建「SQL数据集」。如下图所示:

image.png

设置数据集名称为「同步用户1」,数据连接选择「FRDemo」,SQL 语句为:

select * from 导入用户1

image.png

2.2 部门职务间有层级结构

本节示例所用的用户信息表部门职务间有层级结构,如下图所示:

image.png

2.2.1 准备用户信息表

准备一张用户信息表,表结构如下图所示:

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

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

14.png

2.2.2 创建SQL数据集

使用 Navicat 等第三方工具,将上表导入数据库,并建立系统与该数据库的 数据连接 。下文将以 FRDemo 数据库为例。

管理员登录数据决策系统,点击「管理系统>数据连接>服务器数据集」,创建「SQL数据集」。如下图所示:

image.png

设置数据集名称为「同步用户2」,数据连接选择「FRDemo」,SQL 语句为:

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

image.png

2.2.3 创建树数据集

管理员登录数据决策系统,点击「管理系统>数据连接>服务器数据集」,创建「树数据集」。如下图所示:

image.png

设置数据集名称为「同步用户-有层级」,构建自数据集「同步用户2」,原始标记字段为「did」,父标记字段为「fid」,如下图所示:

image.png

3. 用户更新设置编辑

JAR 包版本在 2020-11-05 之前的工程,同步的用户与「手动添加/导入的用户」不可并存。

JAR 包版本在 2020-11-05 及之后的工程,同步的用户与「手动添加/导入的用户」可并存。

3.1 JAR 包版本在 2020-11-05 之前

管理员登录数据决策系统,点击「管理系统>用户管理>所有用户」,点击「同步用户」。

跳出「用户更新设置」提示框,如下图所示:

不同选择对应的更新逻辑如下:

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

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

如果现有用户在服务器数据集中(用户名相同):

  • 该用户的用户名不变,权限保留

  • 该用户的姓名、密码、手机、邮箱、部门、角色覆盖更新

  • 服务器数据集中不存在的部门会被删除

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

平台现有「手动添加/导入的用户」的用户名、姓名、密码、手机、邮箱、部门、职务、角色、权限均被删除,重新同步用户

服务器数据集中不存在、平台现有的角色仍然保留

3.2 JAR 包版本在 2020-11-05 及之后

管理员登录数据决策系统,点击「管理系统>用户管理>所有用户」,点击「同步用户」。

跳出提示框「是否保留现有非同步数据,包括导入/添加的用户、部门职务、角色」,如下图所示:

image.png

不同选择对应的更新逻辑如下:

选择
定义
保留

如果现有用户不在导入的服务器数据集中,该用户信息和权限将被保留,不修改

如果现有用户在服务器数据集中(用户名相同):

  • 该用户的用户名不变,权限保留

  • 该用户的姓名、密码、手机、邮箱覆盖更新

  • 该用户当前所属的部门职务、角色若存在于同步服务器集中,则覆盖更新

  • 该用户当前所属的部门职务、角色若不存在于同步服务器集中,则保留不变

清空

平台现有「手动添加/导入的用户」的用户名、姓名、密码、手机、邮箱、部门、职务、角色、权限均被删除,重新同步用户

4. 配置同步用户编辑

配置同步数据集信息,如下图所示:

image.png

4.1 同步频率

  • 版本在 10.0.11 之前的工程,支持简单重复执行同步用户操作。

  • 版本在 10.0.11 及之后的工程,支持通过两种方式执行同步用户操作:简单重复执行、表达式设置。

4.1.1 简单重复执行

image.png

从服务器数据集中自动同步用户的间隔时间,默认为 43200 秒。

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

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

4.1.2 表达式设置

image.png

支持通过 Cron 表达式设置任务执行的时间点,该任务可以是每天重复执行,隔日重复执行或者是单次执行等等各种不同组合的触发时间点。

Cron 表达式的语法和写法请参见:Cron 表达式

4.2 用户可编辑

2020-08-04 及之后的 JAR 新增「用户可编辑」按钮,该按钮默认不勾选,勾选后,同步状态下用户信息可编辑。

具体功能如下表所示:

注:JAR 包版本在 2020-08-04 到 2020-11-05 之间的系统,用户同步后,除「忘记密码功能」可使用外,密码策略设置 对同步用户不生效。

      JAR 包版本在 2020-11-05 及之后的系统,密码策略设置 对同步用户生效。

用户身份说明
超级管理员

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

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

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

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

次级管理员

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

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

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

普通用户

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

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

4.3 服务器数据集

选择用户信息对应的服务器数据集。

同步用户的来源只能是当前同步的这个服务器数据集,不支持从多个服务器数据集中同时同步。切换服务器数据集后,清空之前同步信息。

同步成功后,不支持修改同步用户所属同步部门职务、同步角色信息,只能在服务器数据集中修改

4.4 用户重复验证字段

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

1)用户信息保存位置

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

字段信息所在表
用户名、用户IDfine_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

4.5 字段名称

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

注:2020-01-15 及之后的 JAR ,邮箱支持包含符号‘#’和‘&’。

4.6 加密方式

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

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

1)内置 SHA 加密

数据决策系统采用 SHA256 加密方式,以保证密码安全。

用户通过接口自定义修改密码后,会自动进行 SHA256 加密。

2)自定义密码加密

自定义密码加密,即自定义一个密码加密类,加密方式在类中描述,并保存在%BI_Home%\webapps\webroot\WEB-INF\classes文件夹中。

数据决策系统会在用户自定义加密算法的基础上再进行 SHA256 二次加密,以保证密码安全。

自定义加密示例详情参见:简单权限之密码加密

注:自定义加密算法,必须继承 AbstractPasswordValidator 类,并加上返回判断明文密码和密文密码是否一致结果方法才可行。

5. 同步用户管理编辑

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

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

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

image.png

若未开启 4.2 节「用户可编辑」设置,支持管理员「禁用用户」,不支持「编辑用户」和「删除用户」。

若开启了 4.2 节「用户可编辑」设置,支持管理员「禁用用户」和「编辑用户」,不支持「删除用户」。

注:禁用、编辑、删除用户的操作,请参见 添加用户 第 3、4、5 章 

image.png

6. 注意事项编辑

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