组织权限 API
企业门户应用中的 UAA 模块提供组织相关表和 API,权限组件提供权限相关表和 API,OPM 模块提供组织角色 API。
组织权限相关表访问原则为
系统支持在其他应用中,调用企业门户应用的数据和服务,参考《云 IDE》中的租户内跨应用调用数据和服务
组织用户 API
增删改组织和用户 postOrgs
com.justep.clients.api.UaaAcountApi 类提供 postOrgs 方法,实现组织和人员的增删改,方法定义如下。注意:组织 id 和人员 id 必须唯一,不能出现组织 id 和人员 id 相同的情况
方法:
String postOrgs(String var1);
URL:
/entry/uaa/org/postOrgs
请求方式:
POST
参数:
{
"orgFNameSeparator": "/", //全路径名称分隔符,默认为/,可在参数配置中配置
"data": {
"type": "delta", //取值范围: 增量(delta), 全量(all)
"users": [{ //用户信息
"state": "upsert", //当 type=delta 时生效, delete/upsert。全量时不设置
"id": "", //主键
"orgs":[ "",""], //所属组织的 id 列表,和 addOrgs/deleteOrgs 不能同时出现
"addOrgs": [], //增加的组织 id 列表
"deleteOrgs": [], //删除的组织 id 列表
"mainOrg": "", //主组织的 id
"created": null, //创建时间
"username": "", //登录用户名
"name": "", //用户中文名称
"verified": 1, //账号状态
"active": 1, //用户状态
"email": "", //email
"phoneNumber": "", //手机号
"address":"", //办公地址
"position": "", //职位
"description": "", //备注
"hiredate": "2021-07-21 00:00:00", //入职时间
"roles": ["", ""], //人员的角色 id 列表
"addRoles": ["", ""], //人员新增加的角色 id 列表
"deleteRoles": ["", ""], //删除的人员角色 id 列表
"orgRoles":[{"orgid": ["roleid"]}], //人员成员的角色 id 列表
"addOrgRoles": [{"orgid": ["roleid"]}], //人员成员新增加的角色 id 列表
"deleteOrgRoles": [{"orgid": ["roleid"]}], //删除的人员成员角色 id 列表
"sortNumber": 1, //排序号
"type": "org", //org 代表组织内人员,外部人员无需设置
"manageOrgs": [{ //人员或人员成员的管理组织信息
"role": "roleid", //角色 id,主管的角色 id 是 director
"org"; "orgid", //管理者是人员时设置为空,管理者是人员成员时设置为父节点的 id
"managedOrg": "orgid" //被管理组织的 id
}],
"addManageOrgs": [], //内容同 manageOrgs,表示新增加的管理组织信息
"deleteManageOrgs": [], //内容同 manageOrgs,表示要删除的管理组织信息
"extend": {} //扩展表中的字段
}],
"orgs": [{
"state": "upsert", //当 type=delta 时生效, delete/upsert,全量时不设置
"id": "", //组织 id
"parentID": null, //父组织 id
"name": "", //组织名称
"code": "", //组织编码
"type": "", //组织类型:部门(dpt),机构(ogn),岗位(pos)
"active": 1, //状态
"seq": 1, //序号,新增时为空会自动生成,修改时设为-1会自动生成
"roles": ["", ""], //拥有的角色 id 列表;
"addRoles": ["", ""], //新增加的角色 id 列表
"deleteRoles": ["", ""],//删除的角色 id 列表
"manageOrgs": [{ //组织的管理组织信息
"role": "roleid", //角色 id,主管的角色 id 是 director
"managedOrg": "orgid" //被管理组织的 id
}],
"addManageOrgs": [], //内容同 manageOrgs,表示新增加的管理组织信息
"deleteManageOrgs": [], //内容同 manageOrgs,表示要删除的管理组织信息
"extend": {} //扩展表中的字段
}]
}
}
下面列举几个示例
- 添加/修改一个组织
{
"data": {
"type": "delta",
"orgs": [
{
"id": "oUIX2Ja33wcrdbOP0Mo",
"code": "oUIX2Kc33ZasuY7HARJ",
"name": "销售部",
"type": "dpt",
"active": 1,
"parentID": "oOg1sE033OfohXrwywU"
}
]
}
}
- 删除多个组织
{
"data": {
"type": "delta",
"orgs": [
{
"state": "delete",
"id": "oUIX2Ja33wcrdbOP0Mo",
"type": "dpt"
}
]
}
}
- 添加/修改一个人员
{
"data": {
"type": "delta",
"users": [
{
"id": "oUIXJkc33lKHOZTXO2k",
"username": "wangfang",
"name": "王芳",
"active": 1,
"verified": 1,
"mainOrg": "oOg1sE033OfohXrwywU",
"type": "org",
"addOrgs": [
"oOg1sE033OfohXrwywU"
]
}
]
}
}
- 删除多个人员
{
"data": {
"type": "delta",
"orgs": null,
"users": [
{
"state": "delete",
"id": "oUIXJkc33lKHOZTXO2k",
"orgs": []
}
]
}
}
- 将组织内用户变成外部用户
{
"data": {
"type": "delta",
"users": [
{
"id": "p1ydfTi33RPqSQIKf5b",//用户 id
"orgs": "",
"mainOrg": "",
"type": null
}
]
}
}
查询组织
查询组织表 orgs,使用 dbrest,参考《数据访问接口》,表结构参考《组织权限数据表》
URL
/entry/uaa/dbrest/orgs
请求方式
GET
示例
fetch("https://entrylzsdev6-vip.trunk.xcaas.net/entry/uaa/dbrest/orgs?limit=20&offset=0&select=orgID%2CforgID%2CtypedID%2Cid%2CparentID%2Cname%2Ccode%2Cfcode%2Cfid%2Cfname%2Csequence%2Cseq%2Ctype%2Cleaf%2Clevel%2Cactive&order=%22seq%22.asc&(&type=neq.psm&$orgsBackFilter=eq.active&)&parentID=is.null", {
"method": "GET"
});
查询用户
查询用户表 users,使用 dbrest,参考《数据访问接口》,表结构参考《组织权限数据表》
URL
/entry/uaa/dbrest/users
请求方式
GET
用户过期锁定
在统一通用配置的组织配置中,可以配置注册用户有效期、未登录账号冻结期限; 在统一通用配置的密码配置中,可以配置密码有效期。
企业门户应用提供“用户过期锁定” API,读取这三个配置项,根据设定的天数,将用户表中的
- 用户状态 active 设置为0,表示用户禁用
- 密码必须修改 passwd_change_required 设置为1,表示不修改密码不能登录
URL:
/entry/opm/orgmanager/lockoverdueusers
请求方式:
POST
可以在任务调度中添加定时任务,定时调用“用户过期锁定” API
组织用户其它API
com.justep.clients.api.UaaAcountApi 类提供如下 API
@ServeName("entry")
public interface UaaAcountApi {
//注册影子账户
@RequestLine("POST /uaa/Users/registerShadowUser")
@Headers("Content-Type: application/json")
JSONObject registerShadowUser(ShadowUserVO shadowUser);
//注册用户
@RequestLine("POST /uaa/Users/register")
@Headers("Content-Type: application/json")
UserVO createRegisterUser(UserVO user);
//维护组和用户
@RequestLine("POST /uaa/org/postGroups")
@Headers("Content-Type: application/json")
String postGroups(String content);
}
com.justep.clients.api.DelegationApi 类提供如下 API
@ServeName("entry")
public interface DelegationApi {
//委托查询
@RequestLine("GET /authorize/delegate")
String delegate(@Param("delegationId") String var1);
//删除委托
@RequestLine("DELETE /authorize/delegate")
String exitDelegate();
}
角色 API
新增角色
URL
/entry/authorize/roles
请求方式
POST
参数(可参考role表)
id 角色id(必填)
name 名称(必填)
code 编码(必填)
parentNode 父节点
sequence 序号
type 类型
active 有效状态((必填),1为有效,0为无效)
示例
insertRole = async (event) => {
//最新做法:id和code一致
let roleData = this.comp("roleData");
let role = {
"id": roleData.getValue("code"),
"name": roleData.getValue("name"),
"code": roleData.getValue("code"),
"parentNode": roleData.getValue("parentNode"),
"sequence": roleData.getValue("sequence"),
"type": roleData.getValue("type"),
"active": roleData.getValue("active")
}
//新增角色
try{
await this.addRole(this,role)
}catch(e) {
message.error("新增角色失败:" + e);
};
}
addRole = (page,params) => {
return page.request({
method : "POST",
url : "/entry/authorize/roles",
data : JSON.stringify(params)
});
}
修改角色
修改角色表,不包括父角色编码和父角色名称
URL
/entry/authorize/roles/${roleId}
请求方式
PATCH
参数(可参考role表)
roleId 角色id
name 名称(必填)
code 编码(必填)
parentNode 父节点
sequence 序号
type 类型
active 有效状态((必填),1为有效,0为无效)
示例
updateRole : function(page,params) {
return page.request({
method : "PATCH",
url : "/entry/authorize/roles/" + params.id,
data : JSON.stringify(params)
});
}
修改父角色
修改角色中的父角色编码和父角色名称
URL
/entry/authorize/roles/update/{id}
请求方式
PATCH
参数
id 角色id(必填)
parentRoleCodes 父角色编码(必填,多个使用逗号分隔)
parentRoleNames 父角色名称(必填,多个使用逗号分隔)
示例
fetch("https://entrylzsdev6-lzsdev-ide.trunk.xcaas.net/entry/authorize/roles/update/authorities", {
"body": "{\"id\":\"authorities\",\"parentRoleCodes\":\"authc,internal,anonymous\",\"parentRoleNames\":\"注册用户,内部接口,匿名用户\"}",
"method": "PATCH"
});
删除角色
删除角色和授权
URL
/entry/authorize/roles/${roleId}
请求方式
DELETE
参数
roleId 角色id(必填)
示例
deleteRole : function(page,params) {
return page.request({
method : "DELETE",
url : "/entry/authorize/roles/" + params.id
});
}
查询角色
查询角色表 role,使用 dbrest,参考《数据访问接口》,表结构参考《组织权限数据表》
URL
/entry/authorize/dbrest/role
请求方式
GET
示例
fetch("https://entrylzsdev6-vip.trunk.xcaas.net/entry/authorize/dbrest/role?limit=100&offset=0&select=id%2CcreatedBy%2CcreatedDate%2Cdescription%2ClastModifiedBy%2ClastModifiedDate%2Csequence%2Cactive%2Cversion%2Ccode%2Ctype%2Cname%2CparentNode%2CparentRoleCodes%2CparentRoleNames%2CsqlParamValues&order=%22name%22.asc&(&type=eq.org&$rolesBackFilter=eq.active&)", {
"method": "GET"
});
获取角色的所有父角色
一个角色可以设置多个父角色,形成继承关系。注意角色和父角色不能形成循环继承,即不能设置 A 角色继承 B 角色,B 角色又继承 A 角色
URL
/entry/opm/orgmanager/quertroleforrelation?code=${code}
请求方式
GET
参数
code 角色编码(必填)
示例
fetch("https://entrylzsdev6-lzsdev-ide.trunk.xcaas.net/entry/opm/orgmanager/quertroleforrelation?code=authorities", {
"method": "GET"
});
角色其它 API
com.justep.clients.api.RoleApi 类提供如下 API
@ServeName("entry")
public interface RoleApi {
//根据角色 ID 更新角色
@RequestLine("PATCH /authorize/roles/update/{roleid}")
@Headers("Content-Type: application/json")
RoleVO updateRole(RoleVO roleVO, @Param("roleid") String roleid);
//通过角色 ID 获取权限,includeParent 表示是否包含父权限
@RequestLine("GET /authorize/roles/{role_id}/permissions/all")
Set<PermissionVO> getAllPermission(@Param("role_id") String roleId, @Param("limit") int limit, @Param("offset") int offset,
@Param("includeParent") boolean includeParent);
//获取指定角色的 SQL 参数
@RequestLine("GET /authorize/roles/{role_id}/sqlParams")
List<String> getRoleSqlParams(@Param("role_id") String roleId);
//通过角色编码获取角色,包括包含的角色
@RequestLine("GET /authorize/roles/findByCode")
RoleVO findByCode(@Param("code") String code);
//通过角色编码获取角色,不包括包含的角色
@RequestLine("GET /authorize/roles/findDirectChildRoles")
Set<RoleVO> findDirectChildRoles(@Param("code") String code);
//通过角色类型获取角色,角色类型 type 包括 应用角色 service、业务角色 biz、组织角色 org、岗位角色 pos 等
@RequestLine("GET /authorize/roles/findByType")
JSONObject findByType(@Param("type") String type, @Param("pageable") Object pageable);
}
授权 API
新增授权
URL
/entry/authorize/subjects
请求方式
POST
参数
sid 授权主体id(一般是组织orgid)(必填)
code 主体编码(必填)
name 主体名称
description 描述(一般是人员姓名)
role 角色(必填)
示例
JSONObject subjectEntity = new JSONObject();
subjectEntity.put("sid", orgId);
subjectEntity.put("code", personCode);
subjectEntity.put("description", personName);
subjectEntity.put("role", "/roles/subadmin");
ServiceUtil.post(SpringWebUtil.getRequest(), "entry", "/authorize/subjects", subjectEntity);
删除授权
URL
/entry/authorize/subjects/search/deleteBySidAndRole?sid=${sid}&role=${role}
请求方式
GET
参数
sid 授权主体id(必填)
role 角色(必填,一般通过“/roles/+角色id”拼接)
示例
deleteSubjectBySidAndRole : function(page,params) {
return page.request({
method : "GET",
dataType : "text",
url : "/entry/authorize/subjects/search/deleteBySidAndRole?sid="
+ params.sid + "&role=/roles/"
+ encodeURIComponent(params.roleId)
});
},
查询授权
查询授权表 authorize,使用 dbrest,参考《数据访问接口》,表结构参考《组织权限数据表》
URL
/entry/authorize/dbrest/authorize
请求方式
GET
示例
fetch("https://entrylzsdev6-lzsdev-ide.trunk.xcaas.net/entry/authorize/dbrest/authorize?limit=-1&offset=0&select=authorize.id%20as%20%22id%22%2Cauthorize.createdBy%20as%20%22createdBy%22%2Cauthorize.createdDate%20as%20%22createdDate%22%2Cauthorize.description%20as%20%22description%22%2Cauthorize.lastModifiedBy%20as%20%22lastModifiedBy%22%2Cauthorize.lastModifiedDate%20as%20%22lastModifiedDate%22%2Cauthorize.sequence%20as%20%22sequence%22%2Cauthorize.active%20as%20%22active%22%2Cauthorize.version%20as%20%22version%22%2Cauthorize.subjectId%20as%20%22subjectId%22%2Cauthorize.subjectCode%20as%20%22subjectCode%22%2Cauthorize.subjectType%20as%20%22subjectType%22%2Cauthorize.subjectName%20as%20%22subjectName%22%2Cauthorize.role%20as%20%22role%22%2Crole.type%20as%20%22role_type%22%2Crole.name%20as%20%22role_name%22&join=authorize.inner.role%5Brole.eq.id%5D&order=%22sequence%22.asc%2C%22subjectName%22.asc%2C%22role_name%22.asc&authorize.subjectId=in.CGcZwgh5D8FwxsonfMK%40oR6vFME33Y5nfMk1UOs%2CCGcZwgh5D8FwxsonfMK", {
"method": "GET"
});
获取拥有某个角色的组织
AuthorizeApi 类提供 getRoleSubjectsByCode 方法,获取拥有某个角色的组织,支持获取直接分配的组织和通过子角色间接分配的组织,方法定义如下
方法
List<SubjectVO> getRoleSubjectsByCode(@Param("roleCode") String var1, @Param("direct") boolean var2,
@Param("sort") String var3, @Param("filter") String var4, @Param("offset") int var5,
@Param("limit") int var6);
URL
/entry/authorize/roles/code/角色code/subjects?direct=true&sort=description,asc
请求方式
GET
参数
roleCode:角色编码
direct:true 只包括当前角色分配的组织,false 也包括通过子角色间接分配的组织
sort:排序,格式为:列名,方向(升序 asc,降序 desc),例如按 description 列排升序:description,asc
filter:过滤条件
offset、limit:分页参数
返回值
[
{
"id": , //授权记录id
"code": , //授权主体id,授权到组织,则为组织id,授权到人员成员,则为/父组织id/人员id
"name": , //授权主体code,对应组织和人员的code
"description": , //授权主体fname,对应组织和人员的fname
"role": {
"id": "modelAdmin", //角色id
"code": "modelAdmin", //角色code
"name": "模型管理员", //角色名称
"parentRoleCodes": "", //父角色code,多个父角色使用逗号分隔
"parentRoleNames": "", //父角色名称,多个父角色使用逗号分隔
},
"roleId": "modelAdmin" //角色id
}
]
案例:获取拥有模型管理员角色的组织,模型管理员角色的 code 为 modelAdmin,请求地址为
/entry/authorize/roles/code/modelAdmin/subjects?direct=true&sort=description,asc
返回结果为
[
{
"id": "7552a46b9c0e4f83afe5b5476035cfc2",
"code": "/9ebd043d-ca11-4db9-afda-f649f1b0a3f1/62d8f697-d307-4e9d-8399-eff9fba64c41",
"name": "t13804070003",
"description": "/设计院/数字化中心/G3",
"role": {
"id": "modelAdmin",
"code": "modelAdmin",
"name": "模型管理员",
"parentRoleCodes": "",
"parentRoleNames": "",
},
"roleId": "modelAdmin"
},
{
"id": "682a70f79ce74c8197a15e926154c2e0",
"code": "/f15c6ab8-9355-4967-866a-7d416578ac37/0cbc85dc-7a42-427b-8c65-a212665983fa",
"name": "138",
"description": "/设计院/设计部/模管一",
"role": {
"id": "modelAdmin",
"code": "modelAdmin",
"name": "模型管理员",
"parentRoleCodes": "",
"parentRoleNames": "",
},
"roleId": "modelAdmin"
}
]
获取某个组织的所有角色
返回角色列表,角色中包含父角色等信息
URL
/entry/authorize/subjects/sid/roles?sid=${orgID}
请求方式
GET
参数
orgID 授权主体(必填)
示例
fetch("https://entrylzsdev6-lzsdev-ide.trunk.xcaas.net/authorize/subjects/sid/roles?sid=system", {
"method": "GET"
});
获取某个组织下拥有某个角色的人员
企业门户应用提供“获取某个组织下拥有某个角色的人员”API,说明如下
URL:
/entry/opm/orgauth/queryorghasrole?roleId={roleId}&orgFid={orgFid}
请求方式:
GET
参数:
roleId:角色的 id(必填)
orgFid:组织的 fid(必填)
personName:人员姓名(模糊查询)(非必填)(47)
返回值:
返回人员的 id、姓名、全路径 id、全路径名称和全路径编码的 JSON 数组
[
{
"id": "",
"name": "",
"fid": "",
"fname": "",
"fcode": ""
}
]
案例:获取开发部下拥有合同审批角色的人员。开发部的 fid 为 /oDJaLi833XQoQQTS2fl.ogn/oDSYPbG33UYpIIg1BII.dpt,合同审批角色的 id 为 oIFgHHe338T3G1pMIDe,请求地址为:
/entry/opm/orgauth/queryorghasrole?roleId=oIFgHHe338T3G1pMIDe&orgFid=/oDJaLi833XQoQQTS2fl.ogn/oDSYPbG33UYpIIg1BII.dpt
返回结果为
[
{
"id": "oIzH99633STExJZmcv6",
"name": "zhangsan",
"fid": "/oDJaLi833XQoQQTS2fl.ogn/oDSYPbG33UYpIIg1BII.dpt/oNyGkqQ33Bgprm0H31G.pos/oIzH99633STExJZmcv6.psm",
"fname": "/阳光集团/开发部/经理/张三",
"fcode": "/oDJaLks33GL1SIyAWqo/oDSYPi833Kjn6bl9KIE/oNyGkso33LpnbJA128G/zhangsan"
},
{
"id": "oEguYlO33r5rkrVuzRy",
"name": "liyun",
"fid": "/oDJaLi833XQoQQTS2fl.ogn/oDSYPbG33UYpIIg1BII.dpt/oEguYlO33r5rkrVuzRy.psm",
"fname": "/阳光集团/开发部/李云",
"fcode": "/oDJaLks33GL1SIyAWqo/oDSYPi833Kjn6bl9KIE/liyun"
}
]
批量权限注册
URL:
域名+/batch/registe/service
请求方法:
post
请求体:
JSONObject authorizeInfo:serviceMetaInfo 中 authorize 的结构体
权限其它API
com.justep.clients.api.AuthorizeApi 类提供如下 API:
@ServeName("entry")
public interface AuthorizeApi {
//判断是否有此权限
@RequestLine("POST /authorize/hasConditionPermission")
@Headers("Content-Type: application/x-www-form-urlencoded; charset=UTF-8")
boolean hasConditionPermission(@Param("permission") String permission);
//判断是否拥有传入的角色编码,支持同时判断多个角色
@RequestLine("POST /authorize/hasRole")
@Headers("Content-Type: application/x-www-form-urlencoded; charset=UTF-8")
boolean hasRole(@Param("roles") Set<String> roles);
//获取授权主体的权限
@RequestLine("GET /authorize/subjects/code/permissions")
Set<PermissionVO> getSubjectPermissions(@Param("type") String type, @Param("subjectCode") String subjectCode);
//获取当前用户拥有的角色
@RequestLine("GET /authorize/currentUserRoles")
Set<RoleVO> currentUserRoles(@Param("type") String type);
//获取当前用户拥有的权限,权限类型 type 包括菜单权限 menu、服务权限 service、界面权限 ui 等,非必填
@RequestLine("GET /authorize/currentUserPermissions")
JSONObject currentUserPermissions(@Param("type") String type);
//删除指定的授权主体
@RequestLine("DELETE /authorize/subjects/code/{subjectCode}")
void deleteSubjectByCode(@Param("subjectCode") String subjectCode);
//通过权限编码获取授权主体
@RequestLine("GET /authorize/getSubjectsByPermission")
Set<SubjectVO> getSubjectsByPermission(@Param("permission") String permission);
//获取拥有某个角色的组织
@RequestLine("GET /authorize/roles/code/{roleCode}/subjects")
List<SubjectVO> getRoleSubjectsByCode(@Param("roleCode") String roleCode, @Param("direct") boolean direct,
@Param("sort") String sort, @Param("filter") String filter, @Param("offset") int offset,
@Param("limit") int limit);
//从一组权限中返回有权限的集合
@RequestLine("GET /authorize/permittedPermissions")
Set<String> permittedPermissions(@Param("permissions") Set<String> permissions);
//获取授权主体的角色
@RequestLine("GET /subjects/code/roles")
Set<RoleVO> getSubjectRoles(@Param("subjectCode") String subjectCode, @Param("subjectName") String subjectName);
//通过权限编码获取权限
@RequestLine("GET /authorize/permissions/search/findByCode")
List<PermissionVO> findByCode(@Param("code") String code);
//通过角色编码获取权限
@RequestLine("GET /authorize/permissions/search/findByRole")
JSONObject findByRole(@Param("role") String role, @Param("pageable") Object pageable);
//通过权限类型获取权限
@RequestLine("GET /authorize/permissions/search/findByType")
List<PermissionVO> findByType(@Param("type") String type);
//获取应用的所有权限
@RequestLine("GET /authorize/permissions/search/list")
List<PermissionVO> list(@Param("serviceName") String serviceName);
//使用通配符获取多个权限,wildcardCodes 是支持通配符的权限 code 集合
@RequestLine("GET /authorize/permissions/search/findByWildcardCode")
List<PermissionVO> findByWildcardCode(@Param("wildcardCodes") Set<String> wildcardCodes);
//删除指定角色下的某个权限
@RequestLine("DELETE /authorize/permissions/search/deleteByCodeAndRole")
long deleteByCodeAndRole(@Param("code") String code, @Param("role") String role);
//删除某个人创建的权限
@RequestLine("DELETE /authorize/permissions/search/deleteByCreatedBy")
Integer deleteByCreatedBy(@Param("createdBy") String createdBy);
}
组织角色 API
系统内置3个组织角色,分别是主管、子管理员和流程子管理员
新增/修改子管理员(49)
子管理员管理两个方面,一是管理的组织,二是管理的角色
URL
/entry/opm/orgauth/saveSubadmin
请求方式
POST
参数
orgId 子管理员id
personCode 子管理员编码(新增时必填,更新时需为空)
personName 子管理员名称(新增时必填,更新时需为空)
manageOrgID 管理组织id(必填,多个使用逗号分隔)
manageOrgFID 管理组织全路径id(必填,多个使用逗号分隔)
manageRoleId 管理角色id(必填,多个使用逗号分隔)
示例
fetch("https://entrylzsdev6-vip.trunk.xcaas.net/entry/opm/orgauth/savesubadmin?manageRoleId=layout%2Cauthorities%2Corg_user&manageOrgFID=%2FoMjCV7q33iWfb4KDfmk.ogn&manageOrgID=oMjCV7q33iWfb4KDfmk&orgId=oMjNlMo33B6r1jMpfTW%40oMjCXoM33tMCmzTvo50", {
"method": "POST"
});
删除子管理员(49)
删除子管理员,需要删除三部分数据:授权(authorize 表)、管理的组织(manage_org 表)、管理的角色(manage_role 表)
URL
/entry/opm/orgauth/delmanageorgrolebyrole
请求方式
DELETE
参数
roleId 角色id(必填)
orgId 子管理员id(必填,多个使用逗号分隔)
示例
fetch("https://entrylzsdev6-vip.trunk.xcaas.net/entry/opm/orgauth/delmanageorgrolebyrole?roleId=process_subadmin&orgID=oMjNlMo33B6r1jMpfTW%40oMjCXoM33tMCmzTvo50%2CoMjD6nu33w5ic90opi7%40oMjCXoM33tMCmzTvo50", {
"method": "DELETE"
});
删除组织角色成员(49)
删除组织角色成员,需要删除两部分数据:授权(authorize 表)、管理组织(manage_org)
URL
/entry/opm/orgauth/delorgidbyroleid
请求方式
DELETE
参数
roleId 角色id(必填)
orgID 主体id(必填,多个使用逗号分隔)
示例
fetch("https://entrylzsdev6-vip.trunk.xcaas.net/entry/opm/orgauth/delorgidbyroleid?roleId=process_subadmin&orgID=oMjNlMo33B6r1jMpfTW%40oMjCXoM33tMCmzTvo50%2CoMjD6nu33w5ic90opi7%40oMjCXoM33tMCmzTvo50", {
"method": "DELETE"
});
删除组织角色(49)
删除组织角色,需要删除四部分数据:角色(role 表)、授权(authorize 表)、管理组织(manage_org)、管理角色(manage_role)
URL
/entry/opm/orgauth/delmanageorgandrolebyroleid
请求方式
DELETE
参数
roleId 角色id(必填)
示例
fetch("https://entrylzsdev6-vip.trunk.xcaas.net/entry/opm/orgauth/delmanageorgandrolebyroleid?roleId=process_subadmin", {
"method": "DELETE"
});
查询组织角色成员
返回分页数据,支持按组织名称过滤,支持在限定的组织内查找
URL
/entry/opm/orgmanager/findmanageorgsbyrole
请求方式
GET
参数
roleid 角色id(必填)
page 页码(必填)
size 每页数据量(必填)
searchWord 组织名称,用于模糊搜索
orgRange 组织id(多个使用逗号分隔),用于限定组织范围
示例
fetch("https://entrylzsdev6-lzsdev-ide.trunk.xcaas.net/entry/opm/orgmanager/findmanageorgsbyrole?size=20&roleid=director&searchWord=ceshi&page=1", {
"method": "GET"
});
获取管理者和管理组织
在企业门户应用中,提供4个 API 用于查询组织角色中的管理者和管理组织,API 定义如下图所示
获取管理者
提供3个 API 用于获取管理者,分别是:获取管理者、根据角色编码获取管理者、获取主管
获取管理者
描述:
根据管理组织中的人员成员全路径 ID 和角色 ID,查找管理者
方法:
public String getManager(String personFID,String roleID)
参数:
personFID:人员成员全路径 ID,支持传入多个,使用逗号分隔
roleID:角色 ID
返回值:
管理者对应的组织机构表 orgs 中的数据
前端调用地址:
/entry/opm/flow/getmanager
根据角色编码获取管理者
描述:
根据管理组织中的人员成员全路径 ID 和角色编码,查找管理者
方法:
public String getManagerByRoleCode(String personFID,String roleCode)
参数:
personFID:用户全路径 ID,支持传入多个,使用逗号分隔
roleCode:角色编码
返回值:
管理者对应的组织机构表 orgs 中的数据
前端调用地址:
/entry/opm/flow/getmanagerbyrolecode
获取主管
描述:
根据管理组织中的人员成员全路径 ID 和指定级别,查找主管,如果指定级别没有主管会继续往上查找
方法:
public String getDirector(String personFID, Integer level)
参数:
personFID:用户全路径 ID,支持传入多个,使用逗号分隔
level:根据 level 获取指定级别的部门,1为当前部门,2为上一级部门,以此类推
返回值:
管理者对应的组织机构表 orgs 中的数据
前端调用地址:
/entry/opm/flow/getdirector
获取管理组织
根据角色编码获取管理组织
描述:
根据管理者的组织 ID 和角色编码,查找管理组织
方法:
public String getManageOrgsByRoleCode(String orgId,String roleCode)
参数:
orgId:组织 ID,不支持传入多个
roleCode:角色编码
返回值:
管理组织对应的组织机构表 orgs 中的数据
前端调用地址:
/entry/opm/flow/getmanageorgsbyrolecode