diff options
Diffstat (limited to 'base/common/src/com/netscape/certsrv')
6 files changed, 83 insertions, 25 deletions
diff --git a/base/common/src/com/netscape/certsrv/group/GroupMemberCollection.java b/base/common/src/com/netscape/certsrv/group/GroupMemberCollection.java index d19d939ad..03474d23d 100644 --- a/base/common/src/com/netscape/certsrv/group/GroupMemberCollection.java +++ b/base/common/src/com/netscape/certsrv/group/GroupMemberCollection.java @@ -68,11 +68,11 @@ public class GroupMemberCollection { GroupMemberCollection response = new GroupMemberCollection(); GroupMemberData member1 = new GroupMemberData(); - member1.setID("User 1"); + member1.setUserID("User 1"); response.addMember(member1); GroupMemberData member2 = new GroupMemberData(); - member2.setID("User 2"); + member2.setUserID("User 2"); response.addMember(member2); JAXBContext context = JAXBContext.newInstance(GroupMemberCollection.class); diff --git a/base/common/src/com/netscape/certsrv/group/GroupMemberData.java b/base/common/src/com/netscape/certsrv/group/GroupMemberData.java index 11f3a2147..4bf9edaba 100644 --- a/base/common/src/com/netscape/certsrv/group/GroupMemberData.java +++ b/base/common/src/com/netscape/certsrv/group/GroupMemberData.java @@ -33,18 +33,28 @@ import com.netscape.certsrv.common.Constants; @XmlRootElement(name="GroupMember") public class GroupMemberData { - String id; + String groupID; + String userID; Link link; + @XmlAttribute(name="GroupID") + public String getGroupID() { + return groupID; + } + + public void setGroupID(String groupID) { + this.groupID = groupID; + } + @FormParam(Constants.PR_GROUP_USER) - @XmlAttribute(name="id") - public String getID() { - return id; + @XmlAttribute(name="UserID") + public String getUserID() { + return userID; } - public void setID(String id) { - this.id = id; + public void setUserID(String userID) { + this.userID = userID; } @XmlElement(name="Link") @@ -60,7 +70,8 @@ public class GroupMemberData { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((id == null) ? 0 : id.hashCode()); + result = prime * result + ((groupID == null) ? 0 : groupID.hashCode()); + result = prime * result + ((userID == null) ? 0 : userID.hashCode()); return result; } @@ -73,10 +84,15 @@ public class GroupMemberData { if (getClass() != obj.getClass()) return false; GroupMemberData other = (GroupMemberData) obj; - if (id == null) { - if (other.id != null) + if (groupID == null) { + if (other.groupID != null) + return false; + } else if (!groupID.equals(other.groupID)) + return false; + if (userID == null) { + if (other.userID != null) return false; - } else if (!id.equals(other.id)) + } else if (!userID.equals(other.userID)) return false; return true; } diff --git a/base/common/src/com/netscape/certsrv/user/UserClient.java b/base/common/src/com/netscape/certsrv/user/UserClient.java index 87fe391b6..2dd350354 100644 --- a/base/common/src/com/netscape/certsrv/user/UserClient.java +++ b/base/common/src/com/netscape/certsrv/user/UserClient.java @@ -95,4 +95,14 @@ public class UserClient extends PKIClient { public UserMembershipCollection findUserMemberships(String userID, Integer start, Integer size) { return userMembershipClient.findUserMemberships(userID, start, size); } + + public UserMembershipData addUserMembership(String userID, String groupID) { + @SuppressWarnings("unchecked") + ClientResponse<UserMembershipData> response = (ClientResponse<UserMembershipData>)userMembershipClient.addUserMembership(userID, groupID); + return getEntity(response); + } + + public void removeUserMembership(String userD, String groupID) { + userMembershipClient.removeUserMembership(userD, groupID); + } } diff --git a/base/common/src/com/netscape/certsrv/user/UserMembershipCollection.java b/base/common/src/com/netscape/certsrv/user/UserMembershipCollection.java index f7646d2ef..624891918 100644 --- a/base/common/src/com/netscape/certsrv/user/UserMembershipCollection.java +++ b/base/common/src/com/netscape/certsrv/user/UserMembershipCollection.java @@ -68,11 +68,11 @@ public class UserMembershipCollection { UserMembershipCollection response = new UserMembershipCollection(); UserMembershipData membership1 = new UserMembershipData(); - membership1.setID("Group 1"); + membership1.setGroupID("Group 1"); response.addMembership(membership1); UserMembershipData membership2 = new UserMembershipData(); - membership2.setID("Group 2"); + membership2.setGroupID("Group 2"); response.addMembership(membership2); JAXBContext context = JAXBContext.newInstance(UserMembershipCollection.class); diff --git a/base/common/src/com/netscape/certsrv/user/UserMembershipData.java b/base/common/src/com/netscape/certsrv/user/UserMembershipData.java index 6d5a51ebe..c7d75719c 100644 --- a/base/common/src/com/netscape/certsrv/user/UserMembershipData.java +++ b/base/common/src/com/netscape/certsrv/user/UserMembershipData.java @@ -19,7 +19,6 @@ package com.netscape.certsrv.user; import javax.ws.rs.FormParam; -import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @@ -33,18 +32,28 @@ import com.netscape.certsrv.common.Constants; @XmlRootElement(name="UserMembership") public class UserMembershipData { - String id; + String userID; + String groupID; Link link; + @XmlElement(name="UserID") + public String getUserID() { + return userID; + } + + public void setUserID(String userID) { + this.userID = userID; + } + + @XmlElement(name="GroupID") @FormParam(Constants.PR_GROUP_USER) - @XmlAttribute(name="id") - public String getID() { - return id; + public String getGroupID() { + return groupID; } - public void setID(String id) { - this.id = id; + public void setGroupID(String groupID) { + this.groupID = groupID; } @XmlElement(name="Link") @@ -60,7 +69,8 @@ public class UserMembershipData { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((id == null) ? 0 : id.hashCode()); + result = prime * result + ((groupID == null) ? 0 : groupID.hashCode()); + result = prime * result + ((userID == null) ? 0 : userID.hashCode()); return result; } @@ -73,10 +83,15 @@ public class UserMembershipData { if (getClass() != obj.getClass()) return false; UserMembershipData other = (UserMembershipData) obj; - if (id == null) { - if (other.id != null) + if (groupID == null) { + if (other.groupID != null) + return false; + } else if (!groupID.equals(other.groupID)) + return false; + if (userID == null) { + if (other.userID != null) return false; - } else if (!id.equals(other.id)) + } else if (!userID.equals(other.userID)) return false; return true; } diff --git a/base/common/src/com/netscape/certsrv/user/UserMembershipResource.java b/base/common/src/com/netscape/certsrv/user/UserMembershipResource.java index 193af5126..eedc2c961 100644 --- a/base/common/src/com/netscape/certsrv/user/UserMembershipResource.java +++ b/base/common/src/com/netscape/certsrv/user/UserMembershipResource.java @@ -18,12 +18,18 @@ package com.netscape.certsrv.user; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; import javax.ws.rs.GET; +import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.jboss.resteasy.annotations.ClientResponseType; import com.netscape.certsrv.acls.ACLMapping; @@ -40,4 +46,15 @@ public interface UserMembershipResource { @PathParam("userID") String userID, @QueryParam("start") Integer start, @QueryParam("size") Integer size); + + @POST + @ClientResponseType(entityType=UserMembershipData.class) + @Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + public Response addUserMembership(@PathParam("userID") String userID, String groupID); + + @DELETE + @Path("{groupID}") + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + public void removeUserMembership(@PathParam("userID") String userID, @PathParam("groupID") String groupID); } |