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

jackietien pushed a commit to branch AuthHeaders
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit f9059deadc638ef1f73e0b2d9a456ffe4efba36a
Author: JackieTien97 <[email protected]>
AuthorDate: Wed May 8 12:03:04 2024 +0800

    [IOTDB-6326] Normalize the table headers of Auth related statement
---
 .../db/it/IoTDBSyntaxConventionIdentifierIT.java      |  4 ++--
 .../iotdb/db/it/auth/IoTDBClusterAuthorityIT.java     |  3 ++-
 .../iotdb/confignode/persistence/AuthorInfo.java      |  9 +++++----
 .../org/apache/iotdb/db/auth/AuthorityChecker.java    | 19 +++++++++----------
 .../common/header/ColumnHeaderConstant.java           | 13 +++++++++++++
 .../org/apache/iotdb/commons/conf/IoTDBConstant.java  |  6 +-----
 6 files changed, 32 insertions(+), 22 deletions(-)

diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
index 3e9743bc8c8..247255cdfb6 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBSyntaxConventionIdentifierIT.java
@@ -615,7 +615,7 @@ public class IoTDBSyntaxConventionIdentifierIT {
       Set<String> expectedResult = new HashSet<>(Arrays.asList(resultNames));
       try (ResultSet resultSet = statement.executeQuery("list user")) {
         while (resultSet.next()) {
-          String user = resultSet.getString("user").toLowerCase();
+          String user = 
resultSet.getString(ColumnHeaderConstant.USER).toLowerCase();
           Assert.assertTrue(expectedResult.contains(user));
           expectedResult.remove(user);
         }
@@ -678,7 +678,7 @@ public class IoTDBSyntaxConventionIdentifierIT {
       Set<String> expectedResult = new HashSet<>(Arrays.asList(resultNames));
       try (ResultSet resultSet = statement.executeQuery("list role")) {
         while (resultSet.next()) {
-          String role = resultSet.getString("role").toLowerCase();
+          String role = 
resultSet.getString(ColumnHeaderConstant.ROLE).toLowerCase();
           Assert.assertTrue(expectedResult.contains(role));
           expectedResult.remove(role);
         }
diff --git 
a/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBClusterAuthorityIT.java
 
b/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBClusterAuthorityIT.java
index 9514474881b..8f82a151374 100644
--- 
a/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBClusterAuthorityIT.java
+++ 
b/integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBClusterAuthorityIT.java
@@ -30,6 +30,7 @@ import 
org.apache.iotdb.confignode.rpc.thrift.IConfigNodeRPCService;
 import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerReq;
 import org.apache.iotdb.confignode.rpc.thrift.TAuthorizerResp;
 import org.apache.iotdb.confignode.rpc.thrift.TCheckUserPrivilegesReq;
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
 import org.apache.iotdb.db.queryengine.plan.statement.AuthorType;
 import org.apache.iotdb.it.env.EnvFactory;
 import org.apache.iotdb.it.framework.IoTDBTestRunner;
@@ -366,7 +367,7 @@ public class IoTDBClusterAuthorityIT {
       authorizerResp = client.queryPermission(authorizerReq);
       status = authorizerResp.getStatus();
       assertEquals(TSStatusCode.SUCCESS_STATUS.getStatusCode(), 
status.getCode());
-      assertEquals(IoTDBConstant.COLUMN_PRIVILEGE, authorizerResp.getTag());
+      assertEquals(ColumnHeaderConstant.PRIVILEGES, authorizerResp.getTag());
       assertEquals("tempuser0", 
authorizerResp.getPermissionInfo().getUserInfo().getUsername());
       assertEquals(
           new ArrayList<>(), 
authorizerResp.getPermissionInfo().getUserInfo().getPrivilegeList());
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
index f0be01f2b91..a01a56e8cec 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/AuthorInfo.java
@@ -45,6 +45,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TPathPrivilege;
 import org.apache.iotdb.confignode.rpc.thrift.TPermissionInfoResp;
 import org.apache.iotdb.confignode.rpc.thrift.TRoleResp;
 import org.apache.iotdb.confignode.rpc.thrift.TUserResp;
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
 import org.apache.iotdb.rpc.RpcUtils;
 import org.apache.iotdb.rpc.TSStatusCode;
 
@@ -337,7 +338,7 @@ public class AuthorInfo implements SnapshotProcessor {
         }
       }
     }
-    result.setTag(IoTDBConstant.COLUMN_USER);
+    result.setTag(ColumnHeaderConstant.USER);
     result.setMemberInfo(userList);
     result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
     return result;
@@ -359,7 +360,7 @@ public class AuthorInfo implements SnapshotProcessor {
       }
       roleList.addAll(user.getRoleList());
     }
-    result.setTag(IoTDBConstant.COLUMN_ROLE);
+    result.setTag(ColumnHeaderConstant.ROLE);
     result.setMemberInfo(roleList);
     result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
     return result;
@@ -393,7 +394,7 @@ public class AuthorInfo implements SnapshotProcessor {
     roleInfo.put(role.getName(), roleResp);
     resp.setRoleInfo(roleInfo);
     resp.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
-    result.setTag(IoTDBConstant.COLUMN_PRIVILEGE);
+    result.setTag(ColumnHeaderConstant.PRIVILEGES);
     result.setPermissionInfoResp(resp);
     result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
     result.setMemberInfo(permissionInfo);
@@ -410,7 +411,7 @@ public class AuthorInfo implements SnapshotProcessor {
     }
     TPermissionInfoResp resp = getUserPermissionInfo(plan.getUserName());
     resp.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
-    result.setTag(IoTDBConstant.COLUMN_PRIVILEGE);
+    result.setTag(ColumnHeaderConstant.PRIVILEGES);
     result.setPermissionInfoResp(resp);
     result.setStatus(RpcUtils.getStatus(TSStatusCode.SUCCESS_STATUS));
     return result;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
index d85606d3def..c484121b5d2 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
@@ -33,6 +33,7 @@ import org.apache.iotdb.confignode.rpc.thrift.TRoleResp;
 import org.apache.iotdb.confignode.rpc.thrift.TUserResp;
 import org.apache.iotdb.db.protocol.session.IClientSession;
 import org.apache.iotdb.db.queryengine.common.header.ColumnHeader;
+import org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant;
 import org.apache.iotdb.db.queryengine.common.header.DatasetHeader;
 import org.apache.iotdb.db.queryengine.plan.execution.config.ConfigTaskResult;
 import org.apache.iotdb.db.queryengine.plan.statement.Statement;
@@ -51,6 +52,9 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Collectors;
+
+import static 
org.apache.iotdb.db.queryengine.common.header.ColumnHeaderConstant.LIST_USER_PRIVILEGES_Column_HEADERS;
 
 // Authority checker is SingleTon working at datanode.
 // It checks permission in local. DCL statement will send to confignode.
@@ -206,8 +210,8 @@ public class AuthorityChecker {
       TAuthorizerResp authResp, SettableFuture<ConfigTaskResult> future) {
     List<TSDataType> types = new ArrayList<>();
     boolean listRoleUser =
-        authResp.tag.equals(IoTDBConstant.COLUMN_ROLE)
-            || authResp.tag.equals(IoTDBConstant.COLUMN_USER);
+        authResp.tag.equals(ColumnHeaderConstant.ROLE)
+            || authResp.tag.equals(ColumnHeaderConstant.USER);
 
     List<ColumnHeader> headerList = new ArrayList<>();
     TsBlockBuilder builder;
@@ -221,14 +225,9 @@ public class AuthorityChecker {
         builder.declarePosition();
       }
     } else {
-      headerList.add(new ColumnHeader("ROLE", TSDataType.TEXT));
-      types.add(TSDataType.TEXT);
-      headerList.add(new ColumnHeader("PATH", TSDataType.TEXT));
-      types.add(TSDataType.TEXT);
-      headerList.add(new ColumnHeader("PRIVILEGES", TSDataType.TEXT));
-      types.add(TSDataType.TEXT);
-      headerList.add(new ColumnHeader("GRANT OPTION", TSDataType.BOOLEAN));
-      types.add(TSDataType.BOOLEAN);
+      headerList = LIST_USER_PRIVILEGES_Column_HEADERS;
+      types = 
LIST_USER_PRIVILEGES_Column_HEADERS.stream().map(ColumnHeader::getColumnType)
+          .collect(Collectors.toList());
       builder = new TsBlockBuilder(types);
       TUserResp user = authResp.getPermissionInfo().getUserInfo();
       if (user != null) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
index ea2fad8805f..ff5228722a3 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/header/ColumnHeaderConstant.java
@@ -68,6 +68,7 @@ public class ColumnHeaderConstant {
   public static final String VERSION = "Version";
   public static final String BUILD_INFO = "BuildInfo";
   public static final String PATHS = "Paths";
+  public static final String PATH = "Path";
   public static final String VARIABLE = "Variable";
 
   // column names for count statement
@@ -199,6 +200,11 @@ public class ColumnHeaderConstant {
   // column names for show current timestamp
   public static final String CURRENT_TIMESTAMP = "CurrentTimestamp";
 
+  public static final String PRIVILEGES = "Privileges";
+
+  public static final String GRANT_OPTION = "GrantOption";
+
+
   public static final List<ColumnHeader> lastQueryColumnHeaders =
       ImmutableList.of(
           new ColumnHeader(TIMESERIES, TSDataType.TEXT),
@@ -488,4 +494,11 @@ public class ColumnHeaderConstant {
 
   public static final List<ColumnHeader> showCurrentTimestampColumnHeaders =
       ImmutableList.of(new ColumnHeader(CURRENT_TIMESTAMP, TSDataType.INT64));
+
+  public static final List<ColumnHeader> LIST_USER_PRIVILEGES_Column_HEADERS =
+      ImmutableList.of(
+          new ColumnHeader(ROLE, TSDataType.TEXT),
+          new ColumnHeader(PATH, TSDataType.TEXT),
+          new ColumnHeader(PRIVILEGES, TSDataType.TEXT),
+          new ColumnHeader(GRANT_OPTION, TSDataType.TEXT));
 }
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
index 88df1615a58..439afd945a7 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/IoTDBConstant.java
@@ -169,11 +169,7 @@ public class IoTDBConstant {
   public static final String COLUMN_DISTRIBUTION_PLAN = "distribution plan";
   public static final String QUERY_ID = "queryId";
   public static final String STATEMENT = "statement";
-
-  public static final String COLUMN_ROLE = "role";
-  public static final String COLUMN_USER = "user";
-  public static final String COLUMN_PRIVILEGE = "privilege";
-
+  
   public static final String COLUMN_DATABASE = "database";
   public static final String COLUMN_TTL = "ttl";
 

Reply via email to