/atlassian-kinect-wallboard-extensions/src/main/java/com/atlassian/jirawallboard/resttransitionproxy/GroupsResource.java
Java | 64 lines | 46 code | 11 blank | 7 comment | 4 complexity | 71b3f56a75883916278f1f9aadc48e22 MD5 | raw file
Possible License(s): GPL-3.0, LGPL-3.0, BSD-3-Clause
- package com.atlassian.jirawallboard.resttransitionproxy;
- import com.atlassian.core.user.GroupUtils;
- import com.atlassian.core.user.UserUtils;
- import com.atlassian.jira.security.JiraAuthenticationContext;
- import com.atlassian.jira.user.util.UserUtil;
- import com.opensymphony.user.Group;
- import com.opensymphony.user.User;
- import javax.ws.rs.Consumes;
- import javax.ws.rs.GET;
- import javax.ws.rs.Path;
- import javax.ws.rs.PathParam;
- import javax.ws.rs.Produces;
- import javax.ws.rs.core.MediaType;
- import javax.ws.rs.core.Response;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- /**
- * TODO: Document this class / interface here
- *
- * @since v4.4
- */
- @Path ("groups")
- @Consumes ( { MediaType.APPLICATION_JSON })
- @Produces ( { MediaType.APPLICATION_JSON })
- public class GroupsResource
- {
- private final JiraAuthenticationContext authContext;
- public GroupsResource(UserUtil userUtil, JiraAuthenticationContext authContext)
- {
- this.authContext = authContext ;
- }
- @GET
- @Path ("/{groupName}")
- public Response getGroupMembers(@PathParam ("groupName") final String groupName)
- {
- if(authContext.getLoggedInUser() == null)
- {
- throw new RESTException(Response.Status.UNAUTHORIZED, ErrorCollection.of("Client must be authenticated to access this resource."));
- }
- Group group = GroupUtils.getGroup(groupName);
- if (group == null)
- {
- throw new RESTException(Response.Status.NOT_FOUND, ErrorCollection.of("No group named " + groupName + " exists"));
- }
- // TODO: we should not be making 1 + n REST calls to get the collection of users
- // we can collapse this into a single neat call giving us all the info we need
- List<String> usernames = new ArrayList<String>(group.getUsers());
- Collections.sort(usernames);
- GroupsBeanBuilder builder = new GroupsBeanBuilder().groupName(groupName).users(usernames);
- return Response.ok(builder.build()).cacheControl(TransitionAsUserResource.never()).build();
- }
- }