Jira 使用Atlassian API访问与项目角色关联的组
我目前正在开发一个插件,允许项目管理员在组中管理用户。我一直在浏览api参考文档,但似乎找不到任何可以让我查看与特定项目相关联的组的调用 我已经在每个与我正在搜索的内容相关的位置查看了API,但没有结果 我目前有一个数据库查询,它提供了我要查找的内容Jira 使用Atlassian API访问与项目角色关联的组,jira,jira-plugin,jira-rest-java-api,Jira,Jira Plugin,Jira Rest Java Api,我目前正在开发一个插件,允许项目管理员在组中管理用户。我一直在浏览api参考文档,但似乎找不到任何可以让我查看与特定项目相关联的组的调用 我已经在每个与我正在搜索的内容相关的位置查看了API,但没有结果 我目前有一个数据库查询,它提供了我要查找的内容 SELECT ROLETYPEPARAMETER AS "Groups" FROM projectrole PROJECT_ROLE, projectroleactor PROJECT_ROLE_ACTOR JOIN project PROJE
SELECT ROLETYPEPARAMETER AS "Groups"
FROM projectrole PROJECT_ROLE,
projectroleactor PROJECT_ROLE_ACTOR
JOIN project PROJECT
ON PROJECT.id = PROJECT_ROLE_ACTOR.PID
JOIN cwd_group
ON group_name = roletypeparameter
WHERE PROJECT_ROLE_ACTOR.projectroleid = PROJECT_ROLE.id
AND PKEY = <projectkey>;
选择ROLETYPEPARAMETER作为“组”
从projectrole PROJECT_ROLE,
项目角色扮演者项目角色扮演者
加入项目
ON PROJECT.id=PROJECT\u ROLE\u ACTOR.PID
加入cwd_集团
关于组_name=roletypeparameter
其中PROJECT\u ROLE\u ACTOR.projectroleid=PROJECT\u ROLE.id
和PKEY=;
如果可能的话,我更愿意通过API操作这些数据
所有其他部分都可以让我完成添加、删除用户组的插件
我知道我正在寻找的信息是可用的。如果导航到“角色”页面,则角色中既有用户,也有组。我确信我忽略了API中一些次要的东西,这些API为我提供了与项目相关的组。在实现了数据库路由之后,我又回到了非数据库方法。这是解决问题的实现 这些组的实现方式是作为项目角色下的一组角色参与者。再往下一层,您将组名作为角色参与者的描述符
//Create TreeMap to Store the Role-Group association. Note a role can have more than one group
TreeMap<String,Collection<String>> projectGroups = new TreeMap<String,Collection<String>>();
//Get all the project roles
Collection<ProjectRole> projectRoles = projectRoleManager.getProjectRoles();
//Iterate through each role and get the groups associated with the role
for (ProjectRole projectRole : projectRoles)
{
//Get the role actors for the project role
ProjectRoleActors roleActors = projectRoleManager.getProjectRoleActors(projectRole, project);
//Create an iterator to grab all of the groups for this project role
Iterator <RoleActor> roleActorIterator = roleActors.getRoleActors().iterator();
//Create a collection of strings to store all of the group's roles to put in the map
Collection <String> groupRoles = new ArrayList<String>();
//Iterate the role actors to get the groups
while (roleActorIterator.hasNext())
{
//Add the group by string name into collection
groupRoles.add(roleActorIterator.next().getDescriptor());
}//END While
//Add that role, and the associated groups to that role into our map.
projectGroups.put(projectRole.getName(), groupRoles);
}//END For
{Administrators=[jira-administrators], Developers=[jira-developers, jira-users], Users=[jira-users]}