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

yongzao pushed a commit to branch rename-user-sql
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 346fb2aaa07e86735bd3b3fbb1a975b08e6f5e54
Author: Yongzao <[email protected]>
AuthorDate: Sun Sep 28 16:38:59 2025 +0800

    before refactor super user authentication
---
 .../request/write/auth/AuthorRelationalPlan.java        |  3 ++-
 .../consensus/request/write/auth/AuthorTreePlan.java    |  3 ++-
 .../confignode/persistence/auth/AuthorPlanExecutor.java |  6 +++---
 .../service/thrift/ConfigNodeRPCServiceProcessor.java   | 17 +++++++++--------
 .../iotdb/db/queryengine/plan/parser/ASTVisitor.java    |  9 ++++++++-
 .../db/queryengine/plan/statement/StatementType.java    |  1 +
 .../queryengine/plan/statement/sys/AuthorStatement.java | 12 ++++++++++++
 .../iotdb/commons/auth/user/BasicUserManager.java       |  7 ++++---
 8 files changed, 41 insertions(+), 17 deletions(-)

diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/auth/AuthorRelationalPlan.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/auth/AuthorRelationalPlan.java
index c418aa70b4e..51f07c2452a 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/auth/AuthorRelationalPlan.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/auth/AuthorRelationalPlan.java
@@ -85,7 +85,8 @@ public class AuthorRelationalPlan extends AuthorPlan {
         permissions,
         grantOpt,
         password,
-        0, "");
+        0,
+        "");
   }
 
   public AuthorRelationalPlan(
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/auth/AuthorTreePlan.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/auth/AuthorTreePlan.java
index 4df7aa89658..7e73948e84e 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/auth/AuthorTreePlan.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/consensus/request/write/auth/AuthorTreePlan.java
@@ -108,7 +108,8 @@ public class AuthorTreePlan extends AuthorPlan {
         permissions,
         grantOpt,
         nodeNameList,
-        0, "");
+        0,
+        "");
   }
 
   public AuthorTreePlan(
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/auth/AuthorPlanExecutor.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/auth/AuthorPlanExecutor.java
index dd271090396..df7449e9744 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/auth/AuthorPlanExecutor.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/auth/AuthorPlanExecutor.java
@@ -245,9 +245,9 @@ public class AuthorPlanExecutor implements 
IAuthorPlanExecutor {
         case RUpdateUserV2:
           authorizer.updateUserPassword(userName, authorPlan.getPassword());
           break;
-          case RRenameUser:
-            authorizer.renameUser(userName, roleName);
-            break;
+        case RRenameUser:
+          authorizer.renameUser(userName, roleName);
+          break;
         case RDropRole:
           authorizer.deleteRole(roleName);
           break;
diff --git 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
index 3d577bcdb1a..79d0c115ae3 100644
--- 
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
+++ 
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
@@ -638,9 +638,10 @@ public class ConfigNodeRPCServiceProcessor implements 
IConfigNodeRPCService.Ifac
     ConfigPhysicalPlanType configPhysicalPlanType;
     if (req.getAuthorType() == AuthorType.RENAME_USER.ordinal()) {
       configPhysicalPlanType = ConfigPhysicalPlanType.RenameUser;
-    } else {configPhysicalPlanType
-      =ConfigPhysicalPlanType.values()[
-          req.getAuthorType() + ConfigPhysicalPlanType.CreateUser.ordinal()];
+    } else {
+      configPhysicalPlanType =
+          ConfigPhysicalPlanType.values()[
+              req.getAuthorType() + 
ConfigPhysicalPlanType.CreateUser.ordinal()];
       switch (configPhysicalPlanType) {
         case UpdateUser:
           configPhysicalPlanType = ConfigPhysicalPlanType.UpdateUserV2;
@@ -682,7 +683,8 @@ public class ConfigNodeRPCServiceProcessor implements 
IConfigNodeRPCService.Ifac
                     req.getPermissions(),
                     req.isGrantOpt(),
                     
AuthUtils.deserializePartialPathList(ByteBuffer.wrap(req.getNodeNameList())),
-                    req.getExecutedByUserID(), req.getNewUsername()));
+                    req.getExecutedByUserID(),
+                    req.getNewUsername()));
     final TAuthorizerResp resp = new TAuthorizerResp(dataSet.getStatus());
     resp.setMemberInfo(dataSet.getMemberList());
     resp.setPermissionInfo(dataSet.getPermissionInfoResp());
@@ -700,10 +702,9 @@ public class ConfigNodeRPCServiceProcessor implements 
IConfigNodeRPCService.Ifac
     if (req.getAuthorType() == AuthorRType.RENAME_USER.ordinal()) {
       configPhysicalPlanType = ConfigPhysicalPlanType.RRenameUser;
     } else {
-      configPhysicalPlanType
-    =
-      ConfigPhysicalPlanType.values()[
-          req.getAuthorType() + ConfigPhysicalPlanType.RCreateUser.ordinal()];
+      configPhysicalPlanType =
+          ConfigPhysicalPlanType.values()[
+              req.getAuthorType() + 
ConfigPhysicalPlanType.RCreateUser.ordinal()];
       switch (configPhysicalPlanType) {
         case RUpdateUser:
           configPhysicalPlanType = ConfigPhysicalPlanType.RUpdateUserV2;
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
index 5879159c16e..4960ae0ff49 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/parser/ASTVisitor.java
@@ -2499,7 +2499,6 @@ public class ASTVisitor extends 
IoTDBSqlParserBaseVisitor<Statement> {
   }
 
   // Create Role
-
   @Override
   public Statement visitCreateRole(IoTDBSqlParser.CreateRoleContext ctx) {
     AuthorStatement authorStatement = new 
AuthorStatement(AuthorType.CREATE_ROLE);
@@ -2516,6 +2515,14 @@ public class ASTVisitor extends 
IoTDBSqlParserBaseVisitor<Statement> {
     return authorStatement;
   }
 
+  @Override
+  public Statement visitRenameUser(IoTDBSqlParser.RenameUserContext ctx) {
+    AuthorStatement authorStatement = new 
AuthorStatement(AuthorType.RENAME_USER);
+    authorStatement.setUserName(parseIdentifier(ctx.username.getText()));
+    authorStatement.setNewUsername(parseIdentifier(ctx.newUsername.getText()));
+    return authorStatement;
+  }
+
   // Grant User Privileges
   @Override
   public Statement visitGrantUser(IoTDBSqlParser.GrantUserContext ctx) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/StatementType.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/StatementType.java
index 748241d189b..7351c392b52 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/StatementType.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/StatementType.java
@@ -48,6 +48,7 @@ public enum StatementType {
   LIST_ROLE_USERS,
   GRANT_WATERMARK_EMBEDDING,
   REVOKE_WATERMARK_EMBEDDING,
+  RENAME_USER,
 
   STORAGE_GROUP_SCHEMA,
   DELETE_STORAGE_GROUP,
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/sys/AuthorStatement.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/sys/AuthorStatement.java
index cbbbcd38698..f6226d0b8ee 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/sys/AuthorStatement.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/sys/AuthorStatement.java
@@ -104,6 +104,9 @@ public class AuthorStatement extends Statement implements 
IConfigStatement {
       case LIST_ROLE:
         this.setType(StatementType.LIST_ROLE);
         break;
+      case RENAME_USER:
+        this.setType(StatementType.RENAME_USER);
+        break;
       default:
         throw new IllegalArgumentException("Unknown authorType: " + 
authorType);
     }
@@ -188,6 +191,14 @@ public class AuthorStatement extends Statement implements 
IConfigStatement {
     this.executedByUserId = executedByUserId;
   }
 
+  public String getNewUsername() {
+    return newUsername;
+  }
+
+  public void setNewUsername(String newUsername) {
+    this.newUsername = newUsername;
+  }
+
   @Override
   public <R, C> R accept(StatementVisitor<R, C> visitor, C context) {
     return visitor.visitAuthor(this, context);
@@ -208,6 +219,7 @@ public class AuthorStatement extends Statement implements 
IConfigStatement {
       case REVOKE_ROLE:
       case REVOKE_USER_ROLE:
       case UPDATE_USER:
+      case RENAME_USER:
         queryType = QueryType.WRITE;
         break;
       case LIST_USER:
diff --git 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/BasicUserManager.java
 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/BasicUserManager.java
index c335896c6d2..aa97f52b0c4 100644
--- 
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/BasicUserManager.java
+++ 
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/BasicUserManager.java
@@ -238,9 +238,10 @@ public abstract class BasicUserManager extends 
BasicRoleManager {
     User tmpUser = this.getEntity(newUsername);
     if (tmpUser != null) {
       throw new AuthException(
-          TSStatusCode.USER_ALREADY_EXIST, String.format("Cannot rename user 
%s to %s, because the target username is already existed.",
-          username, newUsername
-      ));
+          TSStatusCode.USER_ALREADY_EXIST,
+          String.format(
+              "Cannot rename user %s to %s, because the target username is 
already existed.",
+              username, newUsername));
     }
     lock.writeLock(username);
     try {

Reply via email to