Loading cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/groups/AbstractGroupAction.java +2 −2 Original line number Diff line number Diff line Loading @@ -199,11 +199,11 @@ public abstract class AbstractGroupAction implements PrivilegedExceptionAction<O } catch (Throwable t) { log.error("Internal Error", t); String message = "Internal Error: " + t.getMessage(); this.logInfo.setSuccess(false); this.logInfo.setMessage(message); log.error(message, t); sendError(500, message); this.logInfo.setMessage(message); } return null; } Loading cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/groups/AddUserMemberAction.java +6 −1 Original line number Diff line number Diff line Loading @@ -72,6 +72,8 @@ import java.security.Principal; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import ca.nrc.cadc.ac.Group; import ca.nrc.cadc.ac.MemberAlreadyExistsException; import ca.nrc.cadc.ac.User; Loading @@ -79,6 +81,8 @@ import ca.nrc.cadc.auth.AuthenticationUtil; public class AddUserMemberAction extends AbstractGroupAction { private static final Logger log = Logger.getLogger(AddUserMemberAction.class); private final String groupName; private final String userID; private final String userIDType; Loading @@ -92,12 +96,13 @@ public class AddUserMemberAction extends AbstractGroupAction this.userIDType = userIDType; } @SuppressWarnings("unchecked") @Override public void doAction() throws Exception { Group group = groupPersistence.getGroup(this.groupName); Principal userPrincipal = AuthenticationUtil.createPrincipal(this.userID, this.userIDType); User toAdd = new User(); toAdd.getIdentities().add(userPrincipal); if (!group.getUserMembers().add(toAdd)) { Loading cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/groups/RemoveUserMemberAction.java +4 −8 Original line number Diff line number Diff line Loading @@ -78,7 +78,6 @@ import ca.nrc.cadc.ac.User; import ca.nrc.cadc.ac.server.PluginFactory; import ca.nrc.cadc.ac.server.UserPersistence; import ca.nrc.cadc.auth.AuthenticationUtil; import ca.nrc.cadc.util.ObjectUtil; public class RemoveUserMemberAction extends AbstractGroupAction { Loading @@ -86,7 +85,7 @@ public class RemoveUserMemberAction extends AbstractGroupAction private final String userID; private final String userIDType; RemoveUserMemberAction(String groupName, String userID, String userIDType) public RemoveUserMemberAction(String groupName, String userID, String userIDType) { super(); this.groupName = groupName; Loading @@ -94,7 +93,7 @@ public class RemoveUserMemberAction extends AbstractGroupAction this.userIDType = userIDType; } @SuppressWarnings("unchecked") @Override public void doAction() throws Exception { Group group = groupPersistence.getGroup(this.groupName); Loading @@ -102,18 +101,15 @@ public class RemoveUserMemberAction extends AbstractGroupAction Principal userPrincipal = AuthenticationUtil.createPrincipal(this.userID, this.userIDType); User user = getUserPersistence().getAugmentedUser(userPrincipal); User toRemove = new User(); ObjectUtil.setField(toRemove, user.getID(), "id"); toRemove.getIdentities().addAll(user.getIdentities()); if (!group.getUserMembers().remove(toRemove)) if (!group.getUserMembers().remove(user)) { throw new MemberNotFoundException(); } groupPersistence.modifyGroup(group); List<String> deletedMembers = new ArrayList<String>(); deletedMembers.add(getUseridForLogging(toRemove)); deletedMembers.add(getUseridForLogging(user)); logGroupInfo(group.getID(), deletedMembers, null); } Loading cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapGroupDAOTest.java +3 −13 Original line number Diff line number Diff line Loading @@ -72,7 +72,6 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.security.Principal; import java.security.PrivilegedExceptionAction; import java.util.Collection; Loading Loading @@ -118,14 +117,6 @@ public class LdapGroupDAOTest extends AbstractLdapDAOTest getGroupDAO().addGroup(expectGroup); Group actualGroup = getGroupDAO().getGroup(expectGroup.getID(), true); log.info("addGroup: " + expectGroup.getID()); for (Principal p : expectGroup.getOwner().getIdentities()) { log.info("ep: " + p); } for (Principal p : actualGroup.getOwner().getIdentities()) { log.info("ap: " + p); } assertGroupsEqual(expectGroup, actualGroup); Group otherGroup = new Group(getGroupID()); Loading Loading @@ -446,7 +437,8 @@ public class LdapGroupDAOTest extends AbstractLdapDAOTest } assertEquals(gr1.getUserMembers().size(), gr2.getUserMembers().size()); assertEquals(gr1.getUserMembers(), gr2.getUserMembers()); assertTrue(gr1.getUserMembers().containsAll(gr2.getUserMembers())); assertTrue(gr2.getUserMembers().containsAll(gr1.getUserMembers())); for (User user : gr1.getUserMembers()) { assertTrue(gr2.getUserMembers().contains(user)); Loading @@ -459,9 +451,7 @@ public class LdapGroupDAOTest extends AbstractLdapDAOTest assertTrue(gr2.getGroupAdmins().contains(gr)); } assertEquals(gr1.getUserAdmins(), gr2.getUserAdmins()); assertEquals(gr1.getUserAdmins().size(), gr2.getUserAdmins() .size()); assertEquals(gr1.getUserAdmins().size(), gr2.getUserAdmins().size()); for (User user : gr1.getUserAdmins()) { assertTrue(gr2.getUserAdmins().contains(user)); Loading cadcAccessControl/src/ca/nrc/cadc/ac/Group.java +8 −6 Original line number Diff line number Diff line Loading @@ -71,7 +71,6 @@ package ca.nrc.cadc.ac; import java.util.Date; import java.util.HashSet; import java.util.Set; import java.util.TreeSet; public class Group { Loading @@ -83,13 +82,13 @@ public class Group protected Set<GroupProperty> properties = new HashSet<GroupProperty>(); // group's user members private Set<User> userMembers = new TreeSet<User>(); private UserSet userMembers = new UserSet(); // group's group members private Set<Group> groupMembers = new HashSet<Group>(); // group's user admins private Set<User> userAdmins = new TreeSet<User>(); private UserSet userAdmins = new UserSet(); // group's group admins private Set<Group> groupAdmins = new HashSet<Group>(); Loading @@ -97,7 +96,9 @@ public class Group public String description; public Date lastModified; public Group() {} public Group() { } /** * Ctor. Loading Loading @@ -153,7 +154,7 @@ public class Group * * @return individual user members of this group */ public Set<User> getUserMembers() public UserSet getUserMembers() { return userMembers; } Loading @@ -171,7 +172,7 @@ public class Group * * @return individual user admins of this group */ public Set<User> getUserAdmins() public UserSet getUserAdmins() { return userAdmins; } Loading Loading @@ -225,4 +226,5 @@ public class Group { return getClass().getSimpleName() + "[" + groupID + "]"; } } Loading
cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/groups/AbstractGroupAction.java +2 −2 Original line number Diff line number Diff line Loading @@ -199,11 +199,11 @@ public abstract class AbstractGroupAction implements PrivilegedExceptionAction<O } catch (Throwable t) { log.error("Internal Error", t); String message = "Internal Error: " + t.getMessage(); this.logInfo.setSuccess(false); this.logInfo.setMessage(message); log.error(message, t); sendError(500, message); this.logInfo.setMessage(message); } return null; } Loading
cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/groups/AddUserMemberAction.java +6 −1 Original line number Diff line number Diff line Loading @@ -72,6 +72,8 @@ import java.security.Principal; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import ca.nrc.cadc.ac.Group; import ca.nrc.cadc.ac.MemberAlreadyExistsException; import ca.nrc.cadc.ac.User; Loading @@ -79,6 +81,8 @@ import ca.nrc.cadc.auth.AuthenticationUtil; public class AddUserMemberAction extends AbstractGroupAction { private static final Logger log = Logger.getLogger(AddUserMemberAction.class); private final String groupName; private final String userID; private final String userIDType; Loading @@ -92,12 +96,13 @@ public class AddUserMemberAction extends AbstractGroupAction this.userIDType = userIDType; } @SuppressWarnings("unchecked") @Override public void doAction() throws Exception { Group group = groupPersistence.getGroup(this.groupName); Principal userPrincipal = AuthenticationUtil.createPrincipal(this.userID, this.userIDType); User toAdd = new User(); toAdd.getIdentities().add(userPrincipal); if (!group.getUserMembers().add(toAdd)) { Loading
cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/groups/RemoveUserMemberAction.java +4 −8 Original line number Diff line number Diff line Loading @@ -78,7 +78,6 @@ import ca.nrc.cadc.ac.User; import ca.nrc.cadc.ac.server.PluginFactory; import ca.nrc.cadc.ac.server.UserPersistence; import ca.nrc.cadc.auth.AuthenticationUtil; import ca.nrc.cadc.util.ObjectUtil; public class RemoveUserMemberAction extends AbstractGroupAction { Loading @@ -86,7 +85,7 @@ public class RemoveUserMemberAction extends AbstractGroupAction private final String userID; private final String userIDType; RemoveUserMemberAction(String groupName, String userID, String userIDType) public RemoveUserMemberAction(String groupName, String userID, String userIDType) { super(); this.groupName = groupName; Loading @@ -94,7 +93,7 @@ public class RemoveUserMemberAction extends AbstractGroupAction this.userIDType = userIDType; } @SuppressWarnings("unchecked") @Override public void doAction() throws Exception { Group group = groupPersistence.getGroup(this.groupName); Loading @@ -102,18 +101,15 @@ public class RemoveUserMemberAction extends AbstractGroupAction Principal userPrincipal = AuthenticationUtil.createPrincipal(this.userID, this.userIDType); User user = getUserPersistence().getAugmentedUser(userPrincipal); User toRemove = new User(); ObjectUtil.setField(toRemove, user.getID(), "id"); toRemove.getIdentities().addAll(user.getIdentities()); if (!group.getUserMembers().remove(toRemove)) if (!group.getUserMembers().remove(user)) { throw new MemberNotFoundException(); } groupPersistence.modifyGroup(group); List<String> deletedMembers = new ArrayList<String>(); deletedMembers.add(getUseridForLogging(toRemove)); deletedMembers.add(getUseridForLogging(user)); logGroupInfo(group.getID(), deletedMembers, null); } Loading
cadcAccessControl-Server/test/src/ca/nrc/cadc/ac/server/ldap/LdapGroupDAOTest.java +3 −13 Original line number Diff line number Diff line Loading @@ -72,7 +72,6 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.security.Principal; import java.security.PrivilegedExceptionAction; import java.util.Collection; Loading Loading @@ -118,14 +117,6 @@ public class LdapGroupDAOTest extends AbstractLdapDAOTest getGroupDAO().addGroup(expectGroup); Group actualGroup = getGroupDAO().getGroup(expectGroup.getID(), true); log.info("addGroup: " + expectGroup.getID()); for (Principal p : expectGroup.getOwner().getIdentities()) { log.info("ep: " + p); } for (Principal p : actualGroup.getOwner().getIdentities()) { log.info("ap: " + p); } assertGroupsEqual(expectGroup, actualGroup); Group otherGroup = new Group(getGroupID()); Loading Loading @@ -446,7 +437,8 @@ public class LdapGroupDAOTest extends AbstractLdapDAOTest } assertEquals(gr1.getUserMembers().size(), gr2.getUserMembers().size()); assertEquals(gr1.getUserMembers(), gr2.getUserMembers()); assertTrue(gr1.getUserMembers().containsAll(gr2.getUserMembers())); assertTrue(gr2.getUserMembers().containsAll(gr1.getUserMembers())); for (User user : gr1.getUserMembers()) { assertTrue(gr2.getUserMembers().contains(user)); Loading @@ -459,9 +451,7 @@ public class LdapGroupDAOTest extends AbstractLdapDAOTest assertTrue(gr2.getGroupAdmins().contains(gr)); } assertEquals(gr1.getUserAdmins(), gr2.getUserAdmins()); assertEquals(gr1.getUserAdmins().size(), gr2.getUserAdmins() .size()); assertEquals(gr1.getUserAdmins().size(), gr2.getUserAdmins().size()); for (User user : gr1.getUserAdmins()) { assertTrue(gr2.getUserAdmins().contains(user)); Loading
cadcAccessControl/src/ca/nrc/cadc/ac/Group.java +8 −6 Original line number Diff line number Diff line Loading @@ -71,7 +71,6 @@ package ca.nrc.cadc.ac; import java.util.Date; import java.util.HashSet; import java.util.Set; import java.util.TreeSet; public class Group { Loading @@ -83,13 +82,13 @@ public class Group protected Set<GroupProperty> properties = new HashSet<GroupProperty>(); // group's user members private Set<User> userMembers = new TreeSet<User>(); private UserSet userMembers = new UserSet(); // group's group members private Set<Group> groupMembers = new HashSet<Group>(); // group's user admins private Set<User> userAdmins = new TreeSet<User>(); private UserSet userAdmins = new UserSet(); // group's group admins private Set<Group> groupAdmins = new HashSet<Group>(); Loading @@ -97,7 +96,9 @@ public class Group public String description; public Date lastModified; public Group() {} public Group() { } /** * Ctor. Loading Loading @@ -153,7 +154,7 @@ public class Group * * @return individual user members of this group */ public Set<User> getUserMembers() public UserSet getUserMembers() { return userMembers; } Loading @@ -171,7 +172,7 @@ public class Group * * @return individual user admins of this group */ public Set<User> getUserAdmins() public UserSet getUserAdmins() { return userAdmins; } Loading Loading @@ -225,4 +226,5 @@ public class Group { return getClass().getSimpleName() + "[" + groupID + "]"; } }