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

rmani 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 1cd7da9  RANGER-3353:Show roles is not listing all roles
1cd7da9 is described below

commit 1cd7da91719bc7e63089c47238e76cbedf114c91
Author: Ramesh Mani <[email protected]>
AuthorDate: Wed Jul 28 23:58:10 2021 -0700

    RANGER-3353:Show roles is not listing all roles
    
    Signed-off-by: Ramesh Mani <[email protected]>
---
 .../hive/authorizer/RangerHiveAuthorizer.java         | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git 
a/hive-agent/src/main/java/org/apache/ranger/authorization/hive/authorizer/RangerHiveAuthorizer.java
 
b/hive-agent/src/main/java/org/apache/ranger/authorization/hive/authorizer/RangerHiveAuthorizer.java
index efe1ff7..7d3a63a 100644
--- 
a/hive-agent/src/main/java/org/apache/ranger/authorization/hive/authorizer/RangerHiveAuthorizer.java
+++ 
b/hive-agent/src/main/java/org/apache/ranger/authorization/hive/authorizer/RangerHiveAuthorizer.java
@@ -343,7 +343,7 @@ public class RangerHiveAuthorizer extends 
RangerHiveAuthorizerBase {
                if (LOG.isDebugEnabled()) {
                        LOG.debug("==> RangerHiveAuthorizer.getAllRoles()");
                }
-               List<String>           ret          = null;
+               List<String>           ret          = new ArrayList<>();
                RangerHiveAuditHandler auditHandler = new 
RangerHiveAuditHandler();
                List<String>               userNames    = null;
                boolean                result       = false;
@@ -360,13 +360,20 @@ public class RangerHiveAuthorizer extends 
RangerHiveAuthorizerBase {
 
                try {
                        if (!hivePlugin.isServiceAdmin(currentUserName)) {
-                               throw new 
HiveAccessControlException("RangerHiveAuthorizer.getPrincipalGrantInfoForRole():
 User information not available...");
+                               throw new 
HiveAccessControlException("RangerHiveAuthorizer.getAllRoles(): User not 
authorized to run show roles...");
                        }
 
-                       Set<String> groups = 
Sets.newHashSet(ugi.getGroupNames());
-                       userNames          = Arrays.asList(currentUserName);
-                       Set<String> roles  = 
hivePlugin.getRolesFromUserAndGroups(currentUserName, groups);
-                       ret = new ArrayList<>(roles);
+                       userNames = Arrays.asList(currentUserName);
+
+                       RangerRoles rangerRoles = hivePlugin.getRangerRoles();
+                       if (rangerRoles != null) {
+                               Set<RangerRole> roles = 
rangerRoles.getRangerRoles();
+                               if (CollectionUtils.isNotEmpty(roles)) {
+                                       for (RangerRole rangerRole : roles) {
+                                               ret.add(rangerRole.getName());
+                                       }
+                               }
+                       }
                        result = true;
 
                } catch(Exception excp) {

Reply via email to