gpt4 book ai didi

confluence - 解释来自 Confluence REST API 的权限

转载 作者:行者123 更新时间:2023-12-02 02:57:20 45 4
gpt4 key购买 nike

我可以从 Confluence REST API 获取权限列表(使用 PythonConfluenceAPI):

p = api.get_space_information(space_key, expand="permissions")['permissions']

我得到了一个字典列表,其中包含有关操作和主题的信息。但 API 中的信息与 Confluence 中显示的权限不匹配:

  • API 中的某些操作不在浏览器中(更新博文)。
  • 浏览器中存在 API 中未包含的操作(空间导出、空间管理、邮件删除)。
  • API 列表中的某些条目根本没有指定任何操作,并且这些条目经常重复出现多次。

我真正想要的是空间管理员列表。我希望有人能够解释 API 为我提供的这些权限结构。

最佳答案

像你一样,我无法使用似乎已被完全删除的 RPC api。如果您想获取空间管理员列表,可以使用一些工具。

简单的方法是使用 /rest/api/group/confluence-administrators/member 路由,它将返回 confluence 管理员的所有成员的列表,这些成员将自动成为空间管理员。

如果您没有很多用户,您也可以使用 Space Permissions Handler add-on您可以在管理面板上安装。它将为您提供一个包含给定用户的所有权限的 api,其格式类型与旧 getSpacePermissionSets 返回的格式相同。

api debug

但如果您有很多用户单独检查它们,这仍然可能是一种痛苦,而且不是最有帮助的事情。我创建了一个 Confluence 插件,它允许我使用 java api,并利用 getAdmins SpaceDirectoryEntity 的方法。

单一端点非常简单:

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/{key}")
public Response getAdmins(@PathParam("key") String key) {
Space space = spaceManager.getSpace(key);
if (space == null) {
return Response.status(Response.Status.NOT_FOUND).build();
}

List<User> admins = spaceManager.getSpaceAdmins(space);
List<Object> out = new ArrayList<Object>();

for (User admin: admins) {
Map<String, String> item = new HashMap<String, String>();
item.put("fullName", admin.getFullName());
item.put("name", admin.getName());
item.put("email", admin.getEmail());
out.add(item);
}

Gson gson = new Gson();
String json = gson.toJson(out);
return Response.ok(json).build();
}

如果给出有效的空格键,则会给出这种响应:

[
{
"name": "admin",
"fullName": "admin",
"email": "admin@hehe.com"
},
{
"name": "admin2",
"fullName": "admin2",
"email": "admin2@hehe.com"
}
]

如果您希望我将其开源,可能需要更多工作来清理该附加组件,请告诉我您是否感兴趣。

关于confluence - 解释来自 Confluence REST API 的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43503996/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com