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

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


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

commit 01185485308296b1efe0bb413be4afaf0149be7a
Author: Sailaja Polavarapu <[email protected]>
AuthorDate: Tue Sep 15 13:55:21 2020 -0700

    RANGER-2997: Fixed role assignment code to assign only one role to a user - 
ranger-2.2 branch
---
 .../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