From 9db00f37d1ef985e11a463992ff276137304047b Mon Sep 17 00:00:00 2001
From: Brian Major <brian.major@nrc-cnrc.gc.ca>
Date: Mon, 17 Nov 2014 11:18:32 -0800
Subject: [PATCH] nep110 - Rework: actions don't get persistent member objects
 before group update

---
 .../src/ca/nrc/cadc/ac/server/web/AddGroupMemberAction.java   | 3 +--
 .../src/ca/nrc/cadc/ac/server/web/AddUserMemberAction.java    | 4 ++--
 .../ca/nrc/cadc/ac/server/web/RemoveGroupMemberAction.java    | 2 +-
 .../src/ca/nrc/cadc/ac/server/web/RemoveUserMemberAction.java | 3 +--
 4 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/AddGroupMemberAction.java b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/AddGroupMemberAction.java
index 9577061c..c842e970 100755
--- a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/AddGroupMemberAction.java
+++ b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/AddGroupMemberAction.java
@@ -73,7 +73,6 @@ import ca.nrc.cadc.ac.GroupAlreadyExistsException;
 import ca.nrc.cadc.ac.server.GroupPersistence;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Set;
 
 public class AddGroupMemberAction extends GroupsAction
 {
@@ -93,7 +92,7 @@ public class AddGroupMemberAction extends GroupsAction
     {
         GroupPersistence groupPersistence = getGroupPersistence();
         Group group = groupPersistence.getGroup(this.groupName);
-        Group toAdd = groupPersistence.getGroup(this.groupMemberName);
+        Group toAdd = new Group(this.groupMemberName);
         if (!group.getGroupMembers().add(toAdd))
         {
             throw new GroupAlreadyExistsException(this.groupMemberName);
diff --git a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/AddUserMemberAction.java b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/AddUserMemberAction.java
index d8a84b26..7c687340 100755
--- a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/AddUserMemberAction.java
+++ b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/AddUserMemberAction.java
@@ -99,14 +99,14 @@ public class AddUserMemberAction extends GroupsAction
         throws Exception
     {
         GroupPersistence groupPersistence = getGroupPersistence();
-        UserPersistence userPersistence = getUserPersistence();
         Group group = groupPersistence.getGroup(this.groupName);
         Principal userPrincipal = AuthenticationUtil.createPrincipal(this.userID, this.userIDType);
-        User toAdd = userPersistence.getUser(userPrincipal);
+        User<Principal> toAdd = new User(userPrincipal);
         if (!group.getUserMembers().add(toAdd))
         {
             throw new MemberAlreadyExistsException();
         }
+        
         groupPersistence.modifyGroup(group);
 
         List<String> addedMembers = new ArrayList<String>();
diff --git a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/RemoveGroupMemberAction.java b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/RemoveGroupMemberAction.java
index 39e14891..269984b1 100755
--- a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/RemoveGroupMemberAction.java
+++ b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/RemoveGroupMemberAction.java
@@ -92,7 +92,7 @@ public class RemoveGroupMemberAction extends GroupsAction
     {
         GroupPersistence groupPersistence = getGroupPersistence();
         Group group = groupPersistence.getGroup(this.groupName);
-        Group toRemove = groupPersistence.getGroup(this.groupMemberName);
+        Group toRemove = new Group(this.groupMemberName);
         if (!group.getGroupMembers().remove(toRemove))
         {
             throw new GroupNotFoundException(this.groupMemberName);
diff --git a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/RemoveUserMemberAction.java b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/RemoveUserMemberAction.java
index c9612f66..9b4d34f7 100755
--- a/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/RemoveUserMemberAction.java
+++ b/projects/cadcAccessControl-Server/src/ca/nrc/cadc/ac/server/web/RemoveUserMemberAction.java
@@ -97,10 +97,9 @@ public class RemoveUserMemberAction extends GroupsAction
         throws Exception
     {
         GroupPersistence groupPersistence = getGroupPersistence();
-        UserPersistence userPersistence = getUserPersistence();
         Group group = groupPersistence.getGroup(this.groupName);
         Principal userPrincipal = AuthenticationUtil.createPrincipal(this.userID, this.userIDType);
-        User toRemove = userPersistence.getUser(userPrincipal);
+        User<Principal> toRemove = new User(userPrincipal);
         if (!group.getUserMembers().remove(toRemove))
         {
             throw new MemberNotFoundException();
-- 
GitLab