# 三方权限同步用户中心权限

# 背景&需求

用户权限系统使用的是三方权限系统,并且在授权的时候以三方权限系统为主,在V8中不进行权限的授权,只是作为查看,此时,就需要将三方的权限系统同步到V8的系统中

# 操作步骤&解决方案

# 方案

客开实现一个中间服务,将三方系统中的权限通过dubbo调用的方式写入用户中心

# 架构图

1766323309067.png

# 第一步:同步角色

#类路径
com.seeyon.ctp.user.api.core.CtpRoleCoreAppService
#请求方法
public SingleResponse<Integer> saveBatch(SingleRequest<CtpRoleSyncDto> request){
}

**备注:**批量新建/更新角色, 入参最大条数不能超过1000条

# 第二步:同步资源

#类路径
com.seeyon.ctp.user.api.core.CtpResourceCoreAppService
#请求方法
public SingleResponse<Integer> registerBatch(SingleRequest<CtpResourceSyncDto> var1){
}

**备注:**批量注册资源, 需要分开层级注册,从高层级到底层级注册,先注册一级,再注册二级三级等。如果不按照层级注册,可能会导致注册数据层级混乱

# 第三步:同步权限

#类路径
com.seeyon.ctp.user.appservice.api.core.CtpUserRoleCoreAppService
#请求方法
public SingleResponse<CtpAuthorizationRuleSyncResultDto> roleAuthBatch(SingleRequest<CtpAuthorizationRuleSyncDto> request) {
}

CtpAuthorizationRuleSyncDto入参说明

参数名称 是否必填 参数类型 参数描述
orgCode true string 授权所属机构编码
roleCode true string 授权应用角色/机构角色编码
dealType true enum 授权对象处理方式。枚举项可选值列表:NONE(NONE),MERGE(MERGE),COVER(COVER),
coverObjectList false array [CtpAuthorizationRuleObjectSyncDto]覆盖授权对象集合(COVER方式下可用)
authObjectType true enum 授权对象类型。枚举项可选值列表:NONE(NONE),INSTITUTION(机构),DEPARTMENT(部门),POST(岗位),JOB(职务),LEVEL(职级),TEAM(系统组),MEMBER(人员),OUTSIDE_INSTITUTION(外部(编外)单位),OUTSIDE_MEMBER(外部(编外)部门人员),ORG_ROLE(组织角色包),UNIT_ORG_ROLE(多维组织部门下的组织角色),
authObjectCode true string 授权对象编码
authObjectOrgCode false string 授权对象所属机构编码
mergeAddObjectList false array [CtpAuthorizationRuleObjectSyncDto]合并新增授权对象集合(MERGE方式下可用)
authObjectType true enum 授权对象类型。枚举项可选值列表:NONE(NONE),INSTITUTION(机构),DEPARTMENT(部门),POST(岗位),JOB(职务),LEVEL(职级),TEAM(系统组),MEMBER(人员),OUTSIDE_INSTITUTION(外部(编外)单位),OUTSIDE_MEMBER(外部(编外)部门人员),ORG_ROLE(组织角色包),UNIT_ORG_ROLE(多维组织部门下的组织角色),
authObjectCode true string 授权对象编码
authObjectOrgCode false string 授权对象所属机构编码
mergeDeleteObjectList false array [CtpAuthorizationRuleObjectSyncDto] 合并删除授权对象集合(MERGE方式下可用)
authObjectType true enum 授权对象类型。枚举项可选值列表:NONE(NONE),INSTITUTION(机构),DEPARTMENT(部门),POST(岗位),JOB(职务),LEVEL(职级),TEAM(系统组),MEMBER(人员),OUTSIDE_INSTITUTION(外部(编外)单位),OUTSIDE_MEMBER(外部(编外)部门人员),ORG_ROLE(组织角色包),UNIT_ORG_ROLE(多维组织部门下的组织角色),
authObjectCode true string 授权对象编码
authObjectOrgCode false string 授权对象所属机构编码
appId false string 授权所属应用
orgScope false enum 组织范围。枚举项可选值列表:NONE(没有范围),INSTITUTION(本机构),INSTITUTIONS(本机构及下级机构),SPECIFY_INSTITUTION(指定机构),SPECIFY_INSTITUTIONS(指定机构及下级机构),MAIN_INSTITUTION(被授权人主岗机构),MEMBER_POST_INSTITUTION(被授权人任职机构(主岗+兼职)),
specifyCodes false string 指定组织的编号

返回体

参数名称 参数类型 参数描述
响应对象 SingleResponse
data SingleData 授权结果
content CtpAuthorizationRuleSyncResultDto 数据对象
message string 描述
result enum 结果。枚举项可选值列表:NONE(NONE),SUCCESS(成功),FAILED(校验失败),ERROR(业务异常),
status int32 状态
code string 错误码
message string 返回信息
traceId string 链路ID
buildVersion string 应用版本
编撰人:liuxiong