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

目录:

1. 描述编辑

企业职工人数是相当多的,并且由于人员的流动性,用户信息一直在变化,如果每次都通过手动添加修改,工作量将会很大。那么该如何实现动态的更新平台系统中的用户信息呢,使之随着数据库中的用户信息一起变化。

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

注:不同于 手动添加用户 中的导入服务器数据中的用户信息,开启了数据集同步后,用户信息将跟随数据集同步,动态改变、实时更新,即若数据库信息改变后,决策系统中的用户信息也会随之改变。

2. 操作步骤编辑

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

设计器中点击服务器>服务器数据集,安装 FineReport 后,默认有一个服务器数据集用户信息表,该表中包含了用户名、部门、职务、邮箱等等信息,服务器数据集添加过程请查看 服务器数据集

2.2 开启同步数据集之前的准备工作

因为内置的用户列表中和同步的数据集中的用户有重命名情况,同步数据集之后会出现用户列表为空现象。

因此需要先手动清空内置用户列表,分为下面三个步骤(若没有重命名的情况则跳过

2.2.1 删除用户列表

管理员登录决策系统,点击管理系统>用户管理>所有用户,勾选用户名前面的复选框后,出现清空列表的选项,点击清空列表,弹出确定的弹窗,点击确定即可,如下图所示:

222
2.2.2 删除部门下的职位

切换到机构部门选项,每个部门下均有对应的职务,依次删除每个部门下的所有职务,如下图所示:
222

2.2.3 删除部门

删除所有部门下的每个部门,如下图所示:

222

2.3 开启数据集同步

点击管理系统>用户管理,进入用户管理界面,点击上面的设置按钮,进入用户设置界面,如下图所示:

222

2.4 配置同步数据集

2.4.1 开启用户同步数据集

在弹出的设置面板中,点击用户同步数据集选项后面的开启按钮,下拉出配置同步数据集选项,为数据决策系统的用户信息绑定字段,如下图所示:

注:默认的没有 role 字段,在 userinfo 表中新建一个 role 字段即可。可以安装 Navicat 软件,连接内置的 Sqlite 数据库,新增字段即可。

222

注:当有用户 ID 字段时,同步时需要绑定用户 ID,否则过后绑定会导致无法同步

2.4.2 设置同步频率、手动立刻同步

设置手动同步的地方,可设置同步频率(单位:秒),有同步按钮,可立刻同步,如下图所示:

222

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

2.4.3 密码加密

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

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

自定义加密示例请查看 简单权限之密码加密

222

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

注2:数据集同步设置完成后要重新登录,原因是切换了登录的方式,原先的登录数据需要清除,如果不重新登录会产生很多无法估计的错误,比如多人登录时由于登录方式切换,各种参数的保存位置会发生混乱等。

 注3:FineReport10.0 之前版本 MD5 加密算法生成的密码强度不够,容易被攻破,故 FineReport10.0 在 MD5 加密算法的基础上采用 SHA256 二次加密。用户从旧版本升级到   FineReport10.0 时升级工具会自动把旧密码再经过一次 SHA256 加密,以保证密码安全,如果有用户通过接口自定义修改密码,则同样需要在 MD5 加密基础上,再进行一次 SHA256 加密。

2.5 查看效果

2.5.1 所有用户

重新登录后,点击管理系统>用户管理>所有用户,就可以看到,数据库中的用户信息自动加载进来了:

注:所有用户及机构部门都是从数据库自动生成的,不能进行修改。

222

但是,如果在用户表中录入多个用户名、姓名一致;部门职务不同的信息时(该表未设置主键),如下图所示:

222

在数据决策系统查看时会发现将用户名、姓名一致的信息列为一条;不同的部门职务、角色并列显示,如下图所示:

222

2.5.2 机构部门

同样,机构部门也会根据数据自动生成,如下图所示:

222

2.5.3 角色

角色也会根据数据自动生成,且同步添加进来的角色为锁定状态,不可编辑,如下图所示:

222

注:如果需要同步部门间层级关系,则需要选择按照部门层级构建的树数据集,详见 从数据库导入部门间层级关系

2.6 再次同步其他数据集

同步不同数据集时候,第二次同步时,会自动删除前一次同步进来的所有用户、部门、职位、角色,如下图所示:
222

3. 注意事项编辑

3.1 注意事项一

问题描述:已经同步了数据集,再添加、导入用户的时候和同步数据集里的用户重名时,重复的用户名不显示在用户列表。

下图是同步数据集后,再导入新的用户 小华 和重复的用户方建英,结果显示 方建英 的用户信息不显示在用户列表,小华的信息成功导入。

2.png

解决方案:已经同步了用户数据集,再添加,导入用户的时候避免和同步数据集里的用户重名。

3.2 注意事项二

问题描述:除了存在内置的用户时,同步数据集的时候,同步的数据集中的用户中有重命名的情况,用户列表为空。

下图是同步了一个内置数据集,同步的数据集中用户名相同,同步后,用户列表为空。

222

解决方案:除了存在内置的用户时,同步数据集的时候,同步的数据集中的用户中避免存在重命名的情况,否则 所重名的用户信息为空。

3.3 注意事项三

问题描述:使用树数据集设置用户同步,用户同步成功;部门机构权限配置里面没有正确显示组织树;但在 FineReport 10.0 中使用相同步骤同步成功。具体情况如下图所示:

222

解决方案:把数据集中父标记字段改为正数即可。

注:在使用树数据集设置用户同步的时候,其中在 FineReport 9.0 中父标记字段不能设置为负数,FineReport 10.0 中则无限制。