# 三方权限同步用户中心权限
# 背景&需求
用户权限系统使用的是三方权限系统,并且在授权的时候以三方权限系统为主,在V8中不进行权限的授权,只是作为查看,此时,就需要将三方的权限系统同步到V8的系统中
# 操作步骤&解决方案
# 方案
客开实现一个中间服务,将三方系统中的权限通过dubbo调用的方式写入用户中心
# 架构图

# 第一步:同步角色
#类路径
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
← 选人组件-页签扩展方案 SPI扩展 →