This is an automated email from the ASF dual-hosted git repository.

spolavarapu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new d99134e  RANGER-2997: Fixed role assignment code to assign only one 
role to a user
d99134e is described below

commit d99134e7faa30f4f69156045cf10bd1cfdfec38d
Author: Sailaja Polavarapu <[email protected]>
AuthorDate: Tue Sep 15 13:23:42 2020 -0700

    RANGER-2997: Fixed role assignment code to assign only one role to a user
---
 .../main/java/org/apache/ranger/biz/XUserMgr.java  | 26 +++++++++++-----------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java 
b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
index 323d3d3..ca492fe 100755
--- a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
@@ -28,6 +28,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
+import java.util.Collections;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
@@ -1548,26 +1549,25 @@ public class XUserMgr extends XUserMgrBase {
                                logger.info(userName + " doesn't exist and 
hence ignoring role assignments");
                                continue;
                        }
-                       Set<String> userRoleList = new HashSet<>();
+                       String userRole = RangerConstants.ROLE_USER;
                        Map<String, String> userMap = 
ugRoleAssignments.getUserRoleAssignments();
                        if (!userMap.isEmpty() && 
userMap.containsKey(userName)) {
                                // Add the user role that is defined in user 
role assignments
-                               userRoleList.add(userMap.get(userName));
-                       }
-                       Map<String, String> groupMap = 
ugRoleAssignments.getGroupRoleAssignments();
+                               userRole = userMap.get(userName);
+                       } else {
+                               Map<String, String> groupMap = 
ugRoleAssignments.getGroupRoleAssignments();
 
-                       if (!groupMap.isEmpty()) {
-                               for (String group : getGroupsForUser(userName)) 
{
-                                       String value = groupMap.get(group);
-                                       if (value != null) {
-                                               userRoleList.add(value);
+                               if (!groupMap.isEmpty()) {
+                                       for (String group : 
getGroupsForUser(userName)) {
+                                               String value = 
groupMap.get(group);
+                                               if (value != null) {
+                                                       userRole = value;
+                                               }
                                        }
                                }
                        }
-                       if (userRoleList.isEmpty()) {
-                               userRoleList.add(RangerConstants.ROLE_USER);
-                       }
-                       String updatedUser = setRolesByUserName(userName, new 
ArrayList<>(userRoleList));
+
+                       String updatedUser = setRolesByUserName(userName, 
Collections.singletonList(userRole));
                        if (updatedUser != null) {
                                updatedUsers.add(updatedUser);
                        }

Reply via email to