From 47724f3c91e124f1856e4b4f3bbd0068d6ca6ff6 Mon Sep 17 00:00:00 2001 From: "Endi S. Dewata" Date: Sun, 4 May 2014 18:22:37 -0400 Subject: Added filter to GroupService.findGroupMembers(). The GroupService.findGroupMembers() has been modified to accept an additional parameter to filter the group members to be returned. The CLI has been modified accordingly. Ticket #920 --- .../cms/servlet/admin/GroupMemberProcessor.java | 28 ++++++++++++---------- .../org/dogtagpki/server/rest/GroupService.java | 6 +++-- 2 files changed, 20 insertions(+), 14 deletions(-) (limited to 'base/server/cms/src') diff --git a/base/server/cms/src/com/netscape/cms/servlet/admin/GroupMemberProcessor.java b/base/server/cms/src/com/netscape/cms/servlet/admin/GroupMemberProcessor.java index 78f602acd..24b242174 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/admin/GroupMemberProcessor.java +++ b/base/server/cms/src/com/netscape/cms/servlet/admin/GroupMemberProcessor.java @@ -19,7 +19,9 @@ package com.netscape.cms.servlet.admin; import java.net.URI; import java.net.URLEncoder; +import java.util.ArrayList; import java.util.Enumeration; +import java.util.List; import java.util.Locale; import java.util.Map; @@ -94,7 +96,8 @@ public class GroupMemberProcessor extends Processor { return groupMemberData; } - public GroupMemberCollection findGroupMembers(String groupID, Integer start, Integer size) { + public GroupMemberCollection findGroupMembers(String groupID, String filter, Integer start, Integer size) { + try { start = start == null ? 0 : start; size = size == null ? DEFAULT_SIZE : size; @@ -113,28 +116,29 @@ public class GroupMemberProcessor extends Processor { GroupMemberCollection response = new GroupMemberCollection(); Enumeration members = group.getMemberNames(); + List results = new ArrayList(); - int i = 0; - - // skip to the start of the page - for ( ; i 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); response.addLink(new Link("prev", uri)); } - if (start+size < i) { + if (start+size < results.size()) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", start+size).build(); response.addLink(new Link("next", uri)); } diff --git a/base/server/cms/src/org/dogtagpki/server/rest/GroupService.java b/base/server/cms/src/org/dogtagpki/server/rest/GroupService.java index fdfbbd966..3e98d3940 100644 --- a/base/server/cms/src/org/dogtagpki/server/rest/GroupService.java +++ b/base/server/cms/src/org/dogtagpki/server/rest/GroupService.java @@ -336,14 +336,16 @@ public class GroupService extends PKIService implements GroupResource { } @Override - public Response findGroupMembers(String groupID, Integer start, Integer size) { + public Response findGroupMembers(String groupID, String filter, Integer start, Integer size) { + + CMS.debug("GroupService.findGroupMembers(" + groupID + ", " + filter + ")"); if (groupID == null) throw new BadRequestException("Group ID is null."); try { GroupMemberProcessor processor = new GroupMemberProcessor(getLocale(headers)); processor.setUriInfo(uriInfo); - return createOKResponse(processor.findGroupMembers(groupID, start, size)); + return createOKResponse(processor.findGroupMembers(groupID, filter, start, size)); } catch (PKIException e) { throw e; -- cgit