summaryrefslogtreecommitdiffstats
path: root/base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java')
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/admin/UserService.java48
1 files changed, 29 insertions, 19 deletions
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();