diff options
author | Endi S. Dewata <edewata@redhat.com> | 2013-11-08 12:36:33 -0500 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2013-11-08 19:28:52 -0500 |
commit | f74c644b09dd1e18289c4a543a211c3ff8cd02d9 (patch) | |
tree | 296fe00e281225bd825c41b319c8435a4219855d /base/server/cms/src/com/netscape/cms/servlet/admin | |
parent | 9d3090378bf4e5152df2c02d48ca8f9beeac2057 (diff) | |
download | pki-f74c644b09dd1e18289c4a543a211c3ff8cd02d9.tar.gz pki-f74c644b09dd1e18289c4a543a211c3ff8cd02d9.tar.xz pki-f74c644b09dd1e18289c4a543a211c3ff8cd02d9.zip |
Fixed find commands.
Some of the REST services have been fixed to consistently return a
DataCollection which contains the total count, the requested subset
of results, and links to request other subsets of the results.
The TPSConnectorFindCLI has been split into separate find and show
commands.
Ticket #749
Diffstat (limited to 'base/server/cms/src/com/netscape/cms/servlet/admin')
3 files changed, 33 insertions, 22 deletions
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 9f976d401..b38277dd0 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 @@ -124,11 +124,12 @@ public class GroupMemberProcessor extends Processor { // return entries up to the page size for ( ; i<start+size && members.hasMoreElements(); i++) { String memberID = members.nextElement(); - response.addMember(createGroupMemberData(groupID, memberID)); + response.addEntry(createGroupMemberData(groupID, memberID)); } // count the total entries for ( ; members.hasMoreElements(); i++) members.nextElement(); + response.setTotal(i); if (start > 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); diff --git a/base/server/cms/src/com/netscape/cms/servlet/admin/GroupService.java b/base/server/cms/src/com/netscape/cms/servlet/admin/GroupService.java index 3f250517a..17c4387a3 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/admin/GroupService.java +++ b/base/server/cms/src/com/netscape/cms/servlet/admin/GroupService.java @@ -109,7 +109,6 @@ public class GroupService extends PKIService implements GroupResource { Enumeration<IGroup> groups = userGroupManager.listGroups(filter); GroupCollection response = new GroupCollection(); - int i = 0; // skip to the start of the page @@ -118,11 +117,12 @@ public class GroupService extends PKIService implements GroupResource { // return entries up to the page size for ( ; i<start+size && groups.hasMoreElements(); i++) { IGroup group = groups.nextElement(); - response.addGroup(createGroupData(group)); + response.addEntry(createGroupData(group)); } // count the total entries for ( ; groups.hasMoreElements(); i++) groups.nextElement(); + response.setTotal(i); if (start > 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); diff --git a/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java b/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java index 3f172abeb..b32bf6756 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java +++ b/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java @@ -28,6 +28,7 @@ import java.security.cert.CertificateNotYetValidException; import java.security.cert.X509Certificate; import java.util.Arrays; import java.util.Enumeration; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -137,7 +138,6 @@ public class UserService extends PKIService implements UserResource { Enumeration<IUser> users = userGroupManager.findUsers(filter); UserCollection response = new UserCollection(); - int i = 0; // skip to the start of the page @@ -146,11 +146,12 @@ public class UserService extends PKIService implements UserResource { // return entries up to the page size for ( ; i<start+size && users.hasMoreElements(); i++) { IUser user = users.nextElement(); - response.addUser(createUserData(user)); + response.addEntry(createUserData(user)); } // count the total entries for ( ; users.hasMoreElements(); i++) users.nextElement(); + response.setTotal(i); if (start > 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); @@ -556,24 +557,33 @@ public class UserService extends PKIService implements UserResource { throw new UserNotFoundException(userID); } + X509Certificate[] certs = user.getX509Certificates(); + if (certs == null) certs = new X509Certificate[0]; + Iterator<X509Certificate> entries = Arrays.asList(certs).iterator(); + UserCertCollection response = new UserCertCollection(); + int i = 0; - X509Certificate[] certs = user.getX509Certificates(); - if (certs != null) { - for (int i=start; i<start+size && i<certs.length; i++) { - X509Certificate cert = certs[i]; - response.addCert(createUserCertData(userID, cert)); - } + // skip to the start of the page + for ( ; i<start && entries.hasNext(); i++) entries.next(); - if (start > 0) { - URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); - response.addLink(new Link("prev", uri)); - } + // return entries up to the page size + for ( ; i<start+size && entries.hasNext(); i++) { + response.addEntry(createUserCertData(userID, entries.next())); + } - if (start+size < certs.length) { - URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", start+size).build(); - response.addLink(new Link("next", uri)); - } + // count the total entries + for ( ; entries.hasNext(); i++) entries.next(); + response.setTotal(i); + + if (start > 0) { + URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); + response.addLink(new Link("prev", uri)); + } + + if (start+size < i) { + URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", start+size).build(); + response.addLink(new Link("next", uri)); } return response; @@ -944,10 +954,9 @@ public class UserService extends PKIService implements UserResource { throw new UserNotFoundException(userID); } - UserMembershipCollection response = new UserMembershipCollection(); - Enumeration<IGroup> groups = userGroupManager.findGroupsByUser(user.getUserDN()); + UserMembershipCollection response = new UserMembershipCollection(); int i = 0; // skip to the start of the page @@ -956,11 +965,12 @@ public class UserService extends PKIService implements UserResource { // return entries up to the page size for ( ; i<start+size && groups.hasMoreElements(); i++) { IGroup group = groups.nextElement(); - response.addMembership(createUserMembershipData(userID, group.getName())); + response.addEntry(createUserMembershipData(userID, group.getName())); } // count the total entries for ( ; groups.hasMoreElements(); i++) groups.nextElement(); + response.setTotal(i); if (start > 0) { URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build(); |