¶ 管理角色
此模块用于管理 Authing 角色,可以进行角色的增删改查、角色添加/删除用户、角色添加/删除策略 等操作。
¶ 创建角色
- managementClient.roles().create(code)
- managementClient.roles().create(code, description)
- managementClient.roles().create(code, description, parent)
- managementClient.roles().create(code, description, parent, namespace)
- managementClient.roles().create(param)
创建角色
¶ 参数
code
<String> 角色唯一标志符userIds
<List<String>> 用户唯一标志符集合param
<RevokeRoleParam> 请求参数对象param.namespace
<String> 权限分组的 Code,详情请见使用权限分组管理权限资源。param.roleCode
<String> 角色唯一标志符param.roleCodes
<List<String>> 角色唯一标志符集合param.userIds
<List<String>> 用户唯一标志符集合param.groupCodes
<List<String>> 用户分组唯一标志符集合param.nodeCodes
<List<String>> 组织机构节点唯一标志符集合
¶ 示例
Role role = managementClient.roles().create(new CreateRoleParam("code")).execute();
¶ 删除角色
managementClient.roles().delete(code)
删除角色
¶ 参数
code
<String> 角色唯一标志符
¶ 示例
managementClient.roles().delete("code").execute();
¶ 批量删除角色
managementClient.roles().deleteMany(codeList)
批量删除角色
¶ 参数
codeList
<List<String>> 角色唯一标志符列表
¶ 示例
ArrayList<String> list = new ArrayList<String>();
list.add("code");
managementClient.roles().deleteMany(list).execute();
¶ 修改角色
- managementClient.roles().update(code, description, newCode)
- managementClient.roles().update(input)
修改角色
¶ 参数
code
<String> 角色唯一标志符description
<String> 描述信息newCode
<String> 新的唯一标志符input
<UpdateRoleParam>input.code
<String> 角色唯一标志符input.description
<String> 描述信息input.newCode
<String> 新的唯一标志符input.namespace
<String> 权限分组的 Code,详情请见使用权限分组管理权限资源。
¶ 示例
Role role = managementClient.roles()
.update(new UpdateRoleParam("code").withDescription("desc")).execute();
¶ 查询角色详情
managementClient.roles().findByCode(param)
获取角色详情
¶ 参数
param
<RoleParam> 查询角色详情请求入参对象param.code
<String> 角色唯一标识param.namespace
<String> 权限分组的 Code,详情请见使用权限分组管理权限资源。
¶ 示例
Role role = managementClient.roles().findByCode(param).execute();
¶ 获取角色列表
managementClient.roles().list(page, limit)
获取角色列表
¶ 参数
page
<Integer> 页码数,默认值:1
。limit
<Integer> 每页个数,默认值:10
。
¶ 示例
PaginatedRoles roles = managementClient.roles().list().execute();
¶ 获取用户列表
managementClient.roles().listUsers(code)
获取用户列表,此方法会获取默认权限组下的角色用户列表,如果想自定义权限组,请使用下面的 managementClient.roles().listUsers(param) 方法,传入 namespace 参数。
¶ 参数
code
<String> 角色唯一标志符
¶ 示例
PaginatedUsers users = managementClient.roles().listUsers("code").execute();
managementClient.roles().listUsers(param)
获取用户列表,此方法可传入自定义 namespace 参数。
¶ 参数
param
<RoleWithUsersParam>param.code
<String> 必填,角色唯一标志符param.namespace
<String> 可选,权限分组的 Code,详情请见使用权限分组管理权限资源。page
<Integer> 可选,页码数,默认值:1
。limit
<Integer> 可选,每页个数,默认值:10
。
¶ 示例
RoleWithUsersParam param = new RoleWithUsersParam(code, namespace);
PaginatedUsers users = this.rolesManagementClient.listUsers(param).execute();
¶ 添加用户
managementClient.roles().addUsers(code, userIds)
添加用户
¶ 参数
code
<String> 角色唯一标志符userIds
<List<String>> 用户 ID 列表
¶ 示例
ArrayList<String> userIds = new ArrayList<>();
userIds.add("userId");
managementClient.roles().addUsers("code", userIds).execute();
¶ 移除用户
- managementClient.roles().removeUsers(code, userIds)
- managementClient.roles().removeUsers(param)
移除用户
¶ 参数
code
<String> 角色唯一标志符userIds
<List<String>> 用户 ID 列表param
<RevokeRoleParam> 移除用户请求入参param.namespace
<String> 权限分组的 Code,详情请见使用权限分组管理权限资源。param.roleCode
<String> 角色唯一标志符param.roleCodes
<List<String>> 角色唯一标志符集合param.userIds
<List<String>> 用户唯一标志符集合param.groupCodes
<List<String>> 用户分组唯一标识符集合param.nodeCodes
<List<String>> 用户组织机构节点唯一标识符集合
¶ 示例
ArrayList<String> userIds = new ArrayList<>();
userIds.add("userId");
managementClient.roles().removeUsers("code", userIds).execute();
¶ 获取角色被授权的所有资源列表
managementClient.roles().listAuthorizedResources(params)
获取一个角色被授权的所有资源。
¶ 参数
param
<ListRoleAuthorizedResourcesParam>param.code
<String> 角色 Codeparam.namespace
<String> 权限分组的 Code,详情请见使用权限分组管理权限资源。param.resourceType
<String> 可选,资源类型,默认会返回所有有权限的资源,现有资源类型如下:DATA
:数据类型;API
:API 类型数据;MENU
:菜单类型数据;BUTTON
:按钮类型数据。
¶ 示例
ListRoleAuthorizedResourcesParam param = new ListRoleAuthorizedResourcesParam("123")
.withNamespace("default")
.withResourceType("DATA");
PaginatedAuthorizedResources res = managementClient.roles().listAuthorizedResources(param).execute();
¶ 示例数据
type
资源类型code
资源描述符,如果是DATA
类型资源,格式为resourceType:resourceId
,如books:*
表示所有书籍,books:1
表示 ID 为 1 的书籍。actions
用户被授权对该资源的操作
{
"totalCount": 12,
"list": [
{
"code": "menu_a",
"type": "MENU"
},
{
"code": "menu_b",
"type": "MENU"
},
{
"code": "books:1",
"type": "DATA",
"actions": ["books:delete", "books:update"]
}
]
}
¶ 获取某个角色扩展字段列表
managementClient.roles().getUdfValue(roleCode)
获取某个角色扩展字段列表
¶ 参数
roleCode
<String> 角色 Code
¶ 示例
managementClient.roles().getUdfValue(ROLE_CODE).execute();
¶ 获取某个角色某个扩展字段
managementClient.roles().getSpecificUdfValue(roleCode, udfKey)
获取某个角色某个扩展字段
¶ 参数
roleCode
<String> 角色 CodeudfKey
<String> 角色自定义扩展字段的 Key
¶ 示例
managementClient.roles().getSpecificUdfValue(ROLE_CODE).execute();
¶ 获取多个角色扩展字段列表
managementClient.roles().getUdfValueBatch(roleCodes)
获取多个角色扩展字段列表
¶ 参数
roleCodes
<List<String>> 角色 Code 列表
¶ 示例
List<String> codeList = Arrays.asList("ROLE_CODE_1", "ROLE_CODE_2");
Map<String, Map<String, Object>> udfMap = managementClient.roles().getUdfValueBatch(codeList).execute();
¶ 设置角色扩展字段列表
- managementClient.roles().setUdfValue(roleCode, key, value)
- managementClient.roles().setUdfValue(roleCode, dataMap)
设置角色扩展字段列表
¶ 参数
roleCode
<String> 角色 Codekey
<String> 字段 Keyvalue
<String> 字段 ValuedataMap
<Map<String, String>> 字段映射 MapdataMap.key
<String> 字段 KeydataMap.value
<String>> 字段 Value
¶ 示例
List<UserDefinedData> list = managementClient.roles().setUdfValue(role.getCode(), "key1", "123").execute();
¶ 设置多个角色扩展字段列表
managementClient.roles().setUdfValueBatch(param))
设置多个角色扩展字段列表
¶ 参数
param
<List<RoleSetUdfValueBatchParams>>- <RoleSetUdfValueBatchParams>
roleCode
<String> 角色 Codedata
<Map<String, String>> 字段 Map
¶ 示例
HashMap<String, String> udfMap = new HashMap<>();
udfMap.put("key1", "\"aaa\"");
udfMap.put("key2", "\"aaa\"");
udfMap.put("key3", "\"aaa\"");
udfMap.put("key4", "\"aaa\"");
RoleSetUdfValueBatchParams params = new RoleSetUdfValueBatchParams(role.getCode(), udfMap);
managementClient.roles().setUdfValueBatch(Arrays.asList(params)).execute();
Map<String, Object> map = managementClient.roles().getUdfValue(role.getCode()).execute();
¶ 移除用户自定义数据
managementClient.roles().removeUdfValue(code, key))
移除用户自定义数据
¶ 参数
code
<String> 角色 Codekey
<String> 字段 Key
¶ 示例
managementClient.roles().removeUdfValue("code", "key").execute();