You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ma...@apache.org on 2014/02/24 22:36:24 UTC

git commit: AMBARI-4764. AmbariManagementControllerTest Test fails with unable to delete the last user. (Dmytro Shkvyra via mahadev)

Repository: ambari
Updated Branches:
  refs/heads/trunk 40fca9c83 -> 7b8741ba7


AMBARI-4764. AmbariManagementControllerTest Test fails with unable to delete the last user. (Dmytro Shkvyra via mahadev)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7b8741ba
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7b8741ba
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7b8741ba

Branch: refs/heads/trunk
Commit: 7b8741ba7deefd2d58aec04205351dfa7a10e6f2
Parents: 40fca9c
Author: Mahadev Konar <ma...@apache.org>
Authored: Mon Feb 24 13:36:18 2014 -0800
Committer: Mahadev Konar <ma...@apache.org>
Committed: Mon Feb 24 13:36:18 2014 -0800

----------------------------------------------------------------------
 .../AmbariManagementControllerImpl.java           | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/7b8741ba/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
index 9d51027..7e7f381 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
@@ -1741,14 +1741,16 @@ public class AmbariManagementControllerImpl implements
             request.getPassword());
       }
 
-      if (request.getRoles().size() > 0) {
-        for (String role : u.getRoles()) {
-          users.removeRoleFromUser(u, role);
-        }
-
-        for (String role : request.getRoles()) {
-          users.addRoleToUser(u, role);
-        }
+      Set<String> roolesToDelete = new HashSet<String>(u.getRoles());
+      Set<String> roolesToAdd = request.getRoles();
+      roolesToDelete.removeAll(request.getRoles());
+      for (String role : roolesToDelete) {
+        users.removeRoleFromUser(u, role);
+        u.getRoles().remove(role);
+      }      
+      roolesToAdd.removeAll(u.getRoles());
+      for (String role : roolesToAdd) {
+        users.addRoleToUser(u, role);
       }
 
     }