Repository: ambari
Updated Branches:
  refs/heads/trunk 2aee43d38 -> f2114d8c9


AMBARI-6838. Admin view: LDAP sync doesn't work when group contains users in 
upper case.


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

Branch: refs/heads/trunk
Commit: f2114d8c9e7905cc6b4d87c2007e1253d6d9e01d
Parents: 2aee43d
Author: Siddharth Wagle <[email protected]>
Authored: Tue Aug 12 16:04:45 2014 -0700
Committer: Siddharth Wagle <[email protected]>
Committed: Tue Aug 12 16:04:45 2014 -0700

----------------------------------------------------------------------
 .../security/authorization/AmbariLdapDataPopulator.java      | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/f2114d8c/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariLdapDataPopulator.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariLdapDataPopulator.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariLdapDataPopulator.java
index 3e0d49f..29b69a6 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariLdapDataPopulator.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/security/authorization/AmbariLdapDataPopulator.java
@@ -227,13 +227,15 @@ public class AmbariLdapDataPopulator {
         if (!user.isLdapUser()) {
           users.setUserLdap(externalMember);
         }
-        internalUsers.remove(externalMember);
+        if (!internalMembers.containsKey(externalMember)) {
+          users.addMemberToGroup(groupName, externalMember);
+        }
         internalMembers.remove(externalMember);
+        internalUsers.remove(externalMember);
       } else {
         users.createUser(externalMember, "", true, false);
         users.setUserLdap(externalMember);
       }
-      users.addMemberToGroup(groupName, externalMember);
     }
     for (Entry<String, User> userToBeUnsynced: internalMembers.entrySet()) {
       final User user = userToBeUnsynced.getValue();
@@ -331,7 +333,7 @@ public class AmbariLdapDataPopulator {
         final DirContextAdapter adapter  = (DirContextAdapter) ctx;
         for (String uniqueMember: 
adapter.getStringAttributes(ldapServerProperties.getGroupMembershipAttr())) {
           final DirContextAdapter userAdapter = (DirContextAdapter) 
ldapTemplate.lookup(uniqueMember);
-          
members.add(userAdapter.getStringAttribute(ldapServerProperties.getUsernameAttribute().toLowerCase()));
+          
members.add(userAdapter.getStringAttribute(ldapServerProperties.getUsernameAttribute()).toLowerCase());
         }
         return null;
       }

Reply via email to