Changelog
[2019-05-18] 本文档记录了 HZERO 0.9.0 中 平台服务、IAM服务、认证服务、调度服务 等服务的优化和BUG修复记录。
hzero-gateway
依赖调整
- 依赖服务
api-gateway
升级到0.15.0.RELEASE
hzero-gateway-helper
依赖调整
- 依赖服务
gateway-helper
升级到0.15.0.RELEASE
功能优化
- 增加是否启用
CommonRequestCheckFilter
过滤器的配置,开发者可禁用该标准的通用权限检查,自行实现权限检查滤器hzero.gateway.filter.common-request.enable=true
hzero-config
问题修复
- 修复重复刷路由问题,
hsgp_service_route
表增加 path 的唯一索引,删除之前的 code 唯一索引
hzero-oauth
问题修复
- 修改密码漏洞、验证码失效 等问题修复
- 修复移动端界面无法登录的问题
功能优化
- 通过
/oauth/authorize
获取token时,支持通过logout_redirect_uri
参数指定退出地址 - 增加通过用户
loginName
删除token的接口(强制用户退出)[DELETE] /admin/{clientId}/token
根据clientId
和loginNameList
删除用户在指定client下的token[DELETE] /admin/token
根据loginNameList
删除用户所有client下的token
- 增加通过通过授权码直接返回用户信息的接口(不返回access_token)
[POST] /oauth/token/user
请求参数与标准的授权码模式一样,直接返回用户信息
- 登录性能优化
- 加上登录/登出日志
hzero-asgard
依赖调整
- 依赖服务
asgard-service
升级到0.15.0.RELEASE
hzero-swagger
问题修复
- 修复无法刷新 swagger 文档的问题
hzero-iam
菜单
功能调整
- 平台层可维护平台级和租户级菜单,租户层只能维护租户个性化的菜单,不对HZERO租户做特殊处理。
- 通过导航栏的 [新建] 按钮创建菜单时,只能创建
根目录
;在菜单列表行上,增加 [新建] 按钮,可创建下级目录或菜单 - 菜单列增加
菜单类型
,并用不同底色标注不同类型菜单,便于识别。 - 平台层菜单管理页面,查询参数增加
层级
,默认平台层。
API 变更
API删除
-
[GET] /hzero/v1/{organizationId}/menus
- 编码:hzero-iam.hiam-menu.listMenu
- 说明:租户层获取菜单列表
- 原因:老接口,无地方使用
- 参考:无
-
[GET] /hzero/v1/{organizationId}/menus/tree
- 编码:hzero-iam.hiam-menu.listNavMenuTree
- 说明:菜单展示-租户层获取树形菜单
- 原因:导航栏菜单展示为登录可访问,租户层和平台层使用同一个接口
- 参考:[GET] /hzero/v1/menus/tree
-
[GET] /hzero/v1/{organizationId}/menus/tree-tls
- 编码:hzero-iam.hiam-menu.listNavMenuTreeTls
- 说明:菜单栏展示-租户层获取树形菜单多语言信息
- 原因:获取菜单多语言通过菜单直接返回
- 参考:无
-
[POST] /hzero/v1/{organizationId}/menus/tree
- 编码:hzero-iam.hiam-menu.batchUpdateMenuTree
- 说明:租户层批量修改树形菜单
- 原因:老接口,无地方使用
- 参考:无
-
[GET] /hzero/v1/menus
- 编码:hzero-iam.hiam-menu-site-level.listMenu
- 说明:平台层获取菜单列表
- 原因:老接口,无地方使用
- 参考:无
-
[POST] /hzero/v1/menus/tree
- 编码:hzero-iam.hiam-menu-site-level.batchUpdateMenuTree
- 说明:平台层批量修改树形菜单
- 原因:老接口,无地方使用
- 参考:无
子账户
功能调整
- 编辑用户时,用户可以给自己分配角色;但是当用户为超级用户时(
admin=true
),只有当前登录用户的角色为超级管理员时,可分配角色,否则不可分配角色。 - 分配角色时,角色选择范围是当前登录用户可管理的所有角色,即分配给当前用户的角色,以及 拥有创建角色功能角色(分配了角色管理
create
权限集)的子孙角色。 - 用户为超级用户(
admin=true
)时,或 用户为当前登录用户时,不显示 [修改密码] 按钮,需自己到个人中心修改密码。
代码优化
- 用户个人中心API提出到一个单独的
HiamUserSelfController
,全为登录可访问API。 - 创建、修改、注册 用户流程,抽象成
UserBuildService
,具体子类UserCreateService
、UserUpdateService
、UserRegisterService
、UserCreateInternalService
,如果需要对流程中的某些逻辑个性化可继承这几个类定制化开发。 - 创建用户增加内部接口调用,相比标准的创建流程,减少了很多控制。
[POST] /hzero/v1/users/internal
API 变更
- 个人中心,更改 默认角色、默认公司 API 去掉 /{organizationId}/,个人中心的API都为登录可访问。
API删除
-
[PUT] /hzero/v1/{organizationId}/users/default-role
- 编码:hzero-iam.hiam-user.updateUserDefaultRole
- 说明:更新用户默认角色
- 原因:该API为用户登录可访问接口,去掉 /{organizationId}/
- 参考:/hzero/v1/users/default-role
-
[PUT] /hzero/v1/{organizationId}/users/default-company
- 编码:hzero-iam.hiam-user.updateUserDefaultCompany
- 说明:更新用户默认公司
- 原因:该API为用户登录可访问接口,去掉 /{organizationId}/
- 参考:/hzero/v1/users/default-company
-
[GET] /hzero/v1/{organizationId}/users/names
- 编码:hzero-iam.hiam-user.selectUsersName
- 说明:批量查询用户名称
- 原因:老接口,无地方使用
- 参考:无
-
[GET] /hzero/v1/{organizationId}/users/paging/all
- 编码:hzero-iam.hiam-user.pagingQueryUser
- 说明:分页查询所有用户信息
- 原因:URL 直接使用,改成 SQL 直接
- 参考:值集 HIAM.ALLOCATABLE_USER
API调整
- [PUT] /hzero/v1/{organizationId}/users/{userId}/admin-password
- 编码:hzero-iam.hiam-user.updateUserPassword
- 说明:租户管理员修改用户密码
- 原因:之前是登录可访问API,调整为需要配置权限;平台级API同理。
- 参考:无
角色
功能调整
- 概念说明:
- 分配角色:由其他用户分配给当前用户的角色,不可被复制或继承,不可分配权限;
- 管理角色:拥有创建角色功能的角色(角色管理分配了
create
权限集),同时为分配角色,只有管理角色可以创建下级角色; - 子孙角色:由管理角色衍生而来,可以被复制或继承,可以为其分配权限。
- 角色管理,查询的角色范围是
分配角色
及管理角色的子孙角色
,可同时看到多个租户的角色,避免来回切换租户、角色。 - 去掉导航栏的 [新建] 按钮,角色如果为
管理角色
,则在行上显示创建按钮,可新建下级角色,否则只能继承或复制。 - 只有当管理角色(父级角色)为
租户超级管理员
时,可创建其它租户角色,其它角色则只能创建相同租户、层级的角色。
其它
依赖调整
- 去掉对
hzero-asgard
服务的依赖,hzero-asgard
分布式服务为用户可选服务。同时,将创建租户的功能由 platform 服务移到 iam 服务中,避免分布式事务。
功能优化
- 权限缓存结构调整,需清理权限缓存后再重启 iam 和 gateway-helper 服务。
- 禁用用户后自动下线登录用户
- 子账户创建用户时添加租户下有效用户数限制
- user_info表新增默认租户字段,可访问租户列表添加设置默认租户功能
表结构调整
- iam_member_role,更改唯一性索引
- iam_user,去掉
phone、email
的必输性 - iam_user,
password
关键字调整
过期值集
- HIAM.USER_ROLE URL已过期,且没地方使用
- HIAM.TENANT_ASSIGNABLE_ROLES URL已过期,且没地方使用
- HIAM.SITE_ASSIGNABLE_ROLES URL已过期,且没地方使用
API 变更
API 删除
-
[GET] /hzero/v1/{organizationId}/roles/paging
- 编码:hzero-iam.hiam-role.pageRoles
- 说明:根据租户ID分页查询角色信息
- 原因:角色查询调整,用户在角色管理可看到自己管理范围的所有角色,包含跨租户的角色。
- 参考:/hzero/v1/roles/self/manageable-roles
-
[GET] /hzero/v1/member-roles/{userId}
- 编码:hzero-iam.hiam-member-role-site-level.listMemberRoles
- 说明:平台层查询分配给用户的角色
- 原因:接口不规范,拆分用户角色、客户端角色
- 参考:
- /hzero/v1/member-roles/user-roles/{userId}
- /hzero/v1/member-roles/client-roles/{clientId}
-
[GET] /hzero/v1/{organizationId}/member-roles/{userId}
- 编码:hzero-iam.hiam-member-role.listMemberRoles
- 说明:组织层查询分配给用户的角色
- 原因:接口不规范,拆分用户角色、客户端角色
- 参考:
- /hzero/v1/{organizationId}/member-roles/user-roles/{userId}
- /hzero/v1/{organizationId}/member-roles/client-roles/{clientId}
-
[GET] /hzero/v1/member-roles/subrole-list
- 编码:hzero-iam.hiam-member-role.queryMemberAllSubroleList
- 说明:批量查询当前用户管理的所有子角色列表
- 原因:查询角色时,查询当前用户管理范围的所有角色,API为登录可访问
- 参考:/hzero/v1/roles/self/user-assignable-roles
-
[GET] /hzero/v1/{organizationId}/member-roles/users
- 编码:hzero-iam.hiam-member-role.pagingQueryUsersByRoleId
- 说明:组织层分页查询某角色下的用户列表
- 原因:重写接口
- 参考:/hzero/v1/{organizationId}/member-roles/role-users/{roleId}
-
[GET] /hzero/v1/member-roles/users
- 编码:hzero-iam.hiam-member-role-site-level.pagingQueryUsersByRoleId
- 说明:平台层分页查询某角色下的用户列表
- 原因:重写接口
- 参考:/hzero/v1/member-roles/role-users/{roleId}
-
[GET] /hzero/v1/{organizationId}/member-roles/batch-assign/by-member-role-list
- 编码:hzero-iam.hiam-member-role.batchMemberRoleAssignByMemberRoleList
- 说明:组织层批量分配成员角色(按照成员角色列表维度)
- 原因:重写接口
- 参考:
- /hzero/v1/{organizationId}/member-roles/batch-assign
- /hzero/v1/{organizationId}/member-roles/batch-assign-internal(内部调用)
API 新增
-
[GET] /hzero/v1/roles/self/manageable-roles
- 编码:hzero-iam.hiam-role.listSelfManageableRoles
- 说明:角色管理 - 分页查询当前用户可管理的所有(子孙)角色
-
[GET] /hzero/v1/roles/self/admin-roles
- 编码:hzero-iam.hiam-role.listSelfAdminRoles
- 说明:角色管理 - 查询当前用户的管理角色
-
[GET] /hzero/v1/roles/self/user-assignable-roles
- 编码:hzero-iam.hiam-role.listUserAssignableRoles
- 说明:用户分配角色 - 分页查询当前用户可管理的角色
-
[GET] /hzero/v1/{organizationId}/member-roles/user-roles/{userId}
- 编码:hzero-iam.hiam-member-role.listUserRoles
- 说明:子账户 - 查询分配给用户的角色
-
[GET] /hzero/v1/{organizationId}/member-roles/client-roles/{clientId}
- 编码:hzero-iam.hiam-member-role.listClientRoles
- 说明:客户端 - 查询分配给客户端的角色
-
[POST] /hzero/v1/{organizationId}/member-roles/role-users/{roleId}
- 编码:hzero-iam.hiam-member-role.listRoleMembers
- 说明:角色管理 - 查询角色已分配的用户
-
[POST] /hzero/v1/{organizationId}/member-roles/batch-assign
- 编码:hzero-iam.hiam-member-role.batchAssignMemberRole
- 说明:角色分配 - 批量分配成员角色
-
[POST] /hzero/v1/{organizationId}/member-roles/batch-assign-internal
- 编码:hzero-iam.hiam-member-role.batchAssignMemberRoleInternal
- 说明:角色分配 - 批量分配成员角色(内部调用,不检查角色是否属于当前用户)
-
[DELETE] /hzero/v1/{organizationId}/member-roles/batch-delete
- 编码:hzero-iam.hiam-member-role.batchDeleteMemberRole
- 说明:角色管理 - 批量删除成员角色
API 调整
- [GET] /hzero/v1/{organizationId}/roles/{roleId}/permission-set-tree
- 编码:hzero-iam.hiam-role.listPermissionSetTree
- 说明:查询角色可分配的权限集树
- 原因:之前是登录可访问API,调整为需要配置权限;平台级API同理。
hzero-file
问题修复:
- 修复华为云自动创建桶的问题
功能优化
- 添加文件加密上传解密下载
- 添加文件按名前缀策略,支持uuid和无前缀
- byte文件上传支持自定义文件类型
- 华为、minio、腾讯添加代理配置
文件客户端优化
- 添加加密上传解密下载的方法
- byte上传添加重载方法,支持自定义文件格式
- 添加onlyOffice
hzero-import
功能优化
- 完善服务端导入多数据库支持
- 调整数据源、规则引擎关联逻辑,支持相同编码租户覆盖平台
表结构调整
- himp_template_line,
format_mask
字段长度变更为30 - himp_template_target,
datasource_id
字段被移除,新增datasource_code
字段
导入客户端优化
- 修复日期读取异常的bug
- 修复临时表数据查询,sheet页查询条件未生效的问题
- 添加自动建表功能
- 数据校验与数据导入添加自定义参数
- 优化模板查询逻辑,客户端可独立使用
hzero-message
问题修复
- 修复了消息服务消息发送配置接口内方法名称重复导致权限丢失问题
- 消息发送配置,模板代码LOV添加排序,配置行中的消息类型限制为不可更改
- 可执行定义界面404,因为删除了接口,前端改为不调用这个接口
hzero-platform
问题修复
- 修复值集视图配置引用值集时添加租户条件过滤,若未选择租户则获取平台级值集信息
- 修复期间定义异常信息不显示中文问题
- 修复平台语言维护功能编辑失效问题
- 修复维护数据权限查询单据权限未限制启用问题
- 修复卡片编辑宽度和高度无法生效的问题
- 修复个性化表格点击保存报错问题
- 修复静态文本租户级查询自定义预定义数据异常问题
- 修复数据库功能数据库编码只能输入大写问题(大小写都允许)
- 修复编码规则新建时没有删除之前失败请求缓存的bug
- 修复租户级编码规则逻辑bug
- 修复值集/数据库/数据源/静态文本在Redis集群下删除缓存报错的bug
功能优化
- 新增了获取国家冠码的接口
- 配置维护功能去除维度限制,新建的配置维护头均为租户级维度
- 平台多语言预定义的数据编辑保存之后会新增一条自定义数据,若模板代码、代码、语言均相同则优先显示自定义数据
- 卡片/条目管理租户级功能添加租户字段和租户校验,租户级功能只能维护本租户的卡片信息
- 租户级数据权限添加自定义预定义,权限范围–>选择权限规则时新建了租户级调用的值集和值集视图
HPFM.PERMISSION_RULE.ORG
,查询的数据为所选租户的屏蔽规则+平台预定义的规则 - 租户级系统配置若不存在数据则默认取平台系统配置的数据
- 添加了新建或编辑租户时可以设置租户的有效用户数的功能,hpfm_tenant表添加有效用户数字段
- 去除编码规则层级限制,新建的编码规则头均为租户级维度
- 租户级值集添加自定义/预定义标记
- 平台级数据权限添加自定义/预定义标记
hzero-plugin-parent
platform-hr
- EmployeeUserController下添加了通过租户id和员工编码查询用户信息,支持批量输入员工编码进行查询;
- HrController下添加了通过多个员工编码批量查询员工信息的接口,支持批量输入员工编码进行查询;
- 员工定义功能增加了自动生成快速索引和拼音字段内容;
- 组织架构–>分配部门 新增了拼音字段和快速索引字段并实现自动生成快速索引和拼音字段内容。修改部门表唯一索引
- 修复组织架构接口内方法名称重复导致权限丢失问题
platform-mdm
- 优化了汇率定义、计量单位、日历定义调用值集获取参数时未限制租户信息和启用状态的问题。
- 修复计量单位和汇率类型定义编码校验问题
- 优化期间定义、日历定义、国标品类定义平台与租户都无需查看租户字段。
- 解决了日历定义公共休假类型不显示的问题。
- 修复地区定义levelPath模糊匹配问题(启用禁用地区时同一层次的数据会被批量禁用和启用)
- 主数据功能添加租户字段
hzero-report
问题修复
- 修复定时报表,报表生成失败的问题
- 修复模板报表,pdf导出乱码的问题
功能优化
- 报表类型添加简单表格,原表格报表调整为复杂表格,简单表格渲染简单的二维表单性能较好
- 支持模板报表自定义字体
表结构更新
- hrpt_dataset表移除datasource_id字段,添加datasource_code字段
hzero-scheduler
问题修复
- 修复最大并发量控制异常的问题
功能优化
- 日志清理,改为异步执行
- 周期任务可以不指定cron,任务不会自动执行,需要手动执行
- 移除执行器的权限层级,用户可见当前租户的执行器和所有自动注册的执行器
- 移除
再次执行
功能,新增任务复制功能 - 自动注册的执行器允许手动下线
- 调整轮询策略缓存
调度客户端优化
- 调整任务暂停逻辑,任务暂停与任务停止分别处理
- 支持自定义之日文件格式
- 任务执行结果为
ReturnT.FAILURE
,任务状态变更为警告(原为成功) - 调整调度服务redis配置方式
hzero-workflow
问题修复
- 修复我发起的流程查询问题
- 修复流程导入租户ID丢失
- 修复接口映射无法删除
功能优化
- 优化审批历史查询
- 添加通过业务主键查询流程以及流程下任务评论
- 我发起的流程添加流程撤销