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

morningman pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git

commit fbab211d776a1990c9d63adeb8b2d9efdfad8da2
Author: xu tao <xutao_u...@163.com>
AuthorDate: Thu Dec 8 10:22:09 2022 +0800

    [fix] 'SHOW ROLES' statement does not display resource privilege (#14812) 
(#14897)
---
 .../java/org/apache/doris/mysql/privilege/RoleManager.java  | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/RoleManager.java 
b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/RoleManager.java
index 09a7d3aadf..0a31786b84 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/RoleManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/privilege/RoleManager.java
@@ -145,9 +145,13 @@ public class RoleManager implements Writable {
             info.add(role.getRoleName());
             info.add(Joiner.on(", ").join(role.getUsers()));
 
-            Map<PrivLevel, String> infoMap = 
role.getTblPatternToPrivs().entrySet().stream()
-                    .collect(Collectors.groupingBy(entry -> 
entry.getKey().getPrivLevel())).entrySet().stream()
-                    .collect(Collectors.toMap(Entry::getKey, entry -> {
+            Map<PrivLevel, String> infoMap =
+                    Stream.concat(
+                        role.getTblPatternToPrivs().entrySet().stream()
+                            .collect(Collectors.groupingBy(entry -> 
entry.getKey().getPrivLevel())).entrySet().stream(),
+                        role.getResourcePatternToPrivs().entrySet().stream()
+                            .collect(Collectors.groupingBy(entry -> 
entry.getKey().getPrivLevel())).entrySet().stream()
+                    ).collect(Collectors.toMap(Entry::getKey, entry -> {
                         if (entry.getKey() == PrivLevel.GLOBAL) {
                             return 
entry.getValue().stream().findFirst().map(priv -> priv.getValue().toString())
                                     .orElse(FeConstants.null_string);
@@ -156,7 +160,8 @@ public class RoleManager implements Writable {
                                     .map(priv -> priv.getKey() + ": " + 
priv.getValue())
                                     .collect(Collectors.joining("; "));
                         }
-                    }));
+                    }, (s1, s2) -> s1 + " " + s2
+                ));
             Stream.of(PrivLevel.GLOBAL, PrivLevel.CATALOG, PrivLevel.DATABASE, 
PrivLevel.TABLE, PrivLevel.RESOURCE)
                     .forEach(level -> {
                         String infoItem = infoMap.get(level);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to