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

目录:

1. 描述编辑

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

平台提供了同步数据集功能将已有的用户信息直接导入到决策系统中,并且与数据库中数据保持一致。
注:不同于手动添加用户中的导入服务器数据中的用户信息,开启了数据集同步后,用户信息将跟随数据集同步,动态改变、实时更新,即若数据库信息改变后,决策系统中的用户信息也会随之改变。

2. 步骤编辑

2.1 将用户信息定义为服务器数据集
设计器中点击服务器>服务器数据集,安装FR后,默认有一个服务器数据集用户信息表,该表中包含了用户名、部门、职务、邮箱等等信息,服务器数据集添加过程请查看服务器数据集
2.2 开启同步数据集之前的准备工作
因为内置的用户列表中和同步的数据集中的用户有重命名情况,同步数据集之后会出现用户列表为空现象。
因此需要先手动清空内置用户列表,分为下面三个步骤(若没有重命名的情况则跳过
1)删除用户列表:
管理员登录决策系统,点击管理系统>用户管理>所有用户,勾选用户名前面的复选框后,出现【清空列表】的选项,点击【清空列表】,弹出确定的弹窗,点击【确定】即可,如下图:
222

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

3)删除部门: 
删除所有部门下的每个部门,如下图:
222



2.3 开启数据集同步
点击管理系统>用户管理,进入用户管理界面,点击上面的设置按钮,进入用户设置界面,如下图:
222
2.3 配置同步数据集
1)开启用户同步数据集
在弹出的设置面板中,点击用户同步数据集选项后面的开启按钮,下拉出配置同步数据集选项,为数据决策系统的用户信息绑定字段,如下图:
注:默认的没有role字段,在userinfo表中新建一个role字段即可。可以安装navicat软件,连接内置的sqlite数据库,新增字段即可。
222
注:当有用户ID字段时,同步时需要绑定用户ID,否则过后绑定会导致无法同步
2)设置同步频率、手动立刻同步

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

222

3)密码加密
有两种种加密方式:内置SHA加密,自定义密码加密。
自定义密码加密,即自定义一个密码加密类,加密方式在类中描述,并保存在%FR_Home%\webapps\webroot\WEB-INF\classes文件夹中。
222
注:自定义加密算法,不管该算法的具体方式是什么,都必须继承FineReport的AbstractPasswordEncode类,并加上返回判断明文密码和密文密码是否一致结果方法才可行。
自定义加密示例请查看简单权限之密码加密
注:数据集同步设置完成后要重新登录,原因是切换了登录的方式,原先的登录数据需要清除,如果不重新登录会产生很多无法估计的错误,比如多人登录时由于登录方式切换,各种参数的保存位置会发生混乱等。
2.4 查看效果
1)所有用户
重新登录后,点击管理系统>用户管理>所有用户,就可以看到,数据库中的用户信息自动加载进来了:
注:所有用户及机构部门都是从数据库自动生成的,不能进行修改。
222
但是,如果在用户表中录入多个用户名、姓名一致;部门职务不同的信息时(该表未设置主键),如下图所示:
222
在数据决策系统查看时会发现将用户名、姓名一致的信息列为一条;不同的部门职务、角色并列显示,如下图所示:
222
2)机构部门
同样“机构部门”也会根据数据自动生成:
222
3)角色
“角色”也会根据数据自动生成,且同步添加进来的角色为锁定状态,不可编辑,如下图:
222
注:如果需要同步部门间层级关系,则需要选择按照部门层级构建的树数据集,详见从数据库导入部门间层级关系
2.5 再次同步其他数据集
同步不同数据集时候,第二次同步时,会自动删除前一次同步进来的所有用户、部门、职位、角色,如下图:

222


3. 注意事项编辑

除了存在内置的用户时,同步数据集的时候,同步的数据集中的用户不能有重命名情况;
同时已经同步了数据集,再添加、导入用户的时候和同步数据集里的用户也不可重名。
两种情况,重名情况都会出现用户列表为空现象。
示例:
先同步了数据集1含有用户Anna,再关闭同步数据集,重新导入数据集1时,Anna用户不显示在用户列表; 
解决方案:
重新开启同步数据集,并同步一个不含Anna用户的数据集2,同步成功后,关闭同步,重新导入数据集1即可在用户列表中显示Anna。