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

dockerzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new 7977ddffbf [INLONG-8511][Manager] Add admin permission of public 
tenant to all users (#8513)
7977ddffbf is described below

commit 7977ddffbf13dbb5857004353cae0241eaefa383
Author: vernedeng <[email protected]>
AuthorDate: Thu Jul 13 12:10:44 2023 +0800

    [INLONG-8511][Manager] Add admin permission of public tenant to all users 
(#8513)
---
 .../inlong/manager/service/user/TenantRoleService.java       |  5 +++++
 .../inlong/manager/service/user/TenantRoleServiceImpl.java   | 12 ++++++++++++
 .../apache/inlong/manager/service/user/UserServiceImpl.java  |  5 +++++
 .../org/apache/inlong/manager/service/ServiceBaseTest.java   | 12 +++++++++---
 inlong-manager/manager-web/sql/changes-1.8.0.sql             |  4 ++++
 .../inlong/manager/web/filter/TenantInsertionFilter.java     |  1 -
 .../inlong/manager/web/filter/TenantInsertionFilterTest.java |  2 --
 7 files changed, 35 insertions(+), 6 deletions(-)

diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/TenantRoleService.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/TenantRoleService.java
index 6add8e0a28..43fa062138 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/TenantRoleService.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/TenantRoleService.java
@@ -66,4 +66,9 @@ public interface TenantRoleService {
      * @return true = delete success/ false = delete fail
      */
     Boolean delete(Integer id);
+
+    /**
+     * Add user to default tenant
+     */
+    Integer saveDefault(String username, String operator);
 }
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/TenantRoleServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/TenantRoleServiceImpl.java
index a0c038c3de..618d014cec 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/TenantRoleServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/TenantRoleServiceImpl.java
@@ -31,6 +31,7 @@ import org.apache.inlong.manager.pojo.user.LoginUserUtils;
 import org.apache.inlong.manager.pojo.user.TenantRoleInfo;
 import org.apache.inlong.manager.pojo.user.TenantRolePageRequest;
 import org.apache.inlong.manager.pojo.user.TenantRoleRequest;
+import org.apache.inlong.manager.pojo.user.UserRoleCode;
 
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
@@ -40,6 +41,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.List;
 
+import static org.apache.inlong.common.util.BasicAuth.DEFAULT_TENANT;
 import static 
org.apache.inlong.manager.common.enums.ErrorCodeEnum.TENANT_NOT_EXIST;
 
 /**
@@ -137,4 +139,14 @@ public class TenantRoleServiceImpl implements 
TenantRoleService {
         return true;
     }
 
+    @Override
+    public Integer saveDefault(String username, String operator) {
+        // make default public tenant permission
+        TenantRoleRequest tenantRoleRequest = new TenantRoleRequest();
+        tenantRoleRequest.setTenant(DEFAULT_TENANT);
+        tenantRoleRequest.setRoleCode(UserRoleCode.TENANT_OPERATOR);
+        tenantRoleRequest.setUsername(username);
+        return this.save(tenantRoleRequest, operator);
+    }
+
 }
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserServiceImpl.java
index 8f79bcb1c6..450699746f 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/user/UserServiceImpl.java
@@ -104,6 +104,8 @@ public class UserServiceImpl implements UserService {
     @Autowired
     private UserEntityMapper userMapper;
     @Autowired
+    private TenantRoleService tenantRoleService;
+    @Autowired
     private InlongGroupEntityMapper groupMapper;
     @Autowired
     private InlongClusterEntityMapper clusterMapper;
@@ -147,6 +149,9 @@ public class UserServiceImpl implements UserService {
         }
 
         Preconditions.expectTrue(userMapper.insert(entity) > 0, "Create user 
failed");
+        Preconditions.expectTrue(tenantRoleService.saveDefault(username, 
currentUser) > 0,
+                "Add default tenant role failed");
+
         LOGGER.debug("success to create user info={}", request);
         return entity.getId();
     }
diff --git 
a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/ServiceBaseTest.java
 
b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/ServiceBaseTest.java
index 4aae873949..27bed28ac8 100644
--- 
a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/ServiceBaseTest.java
+++ 
b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/ServiceBaseTest.java
@@ -32,7 +32,8 @@ import 
org.apache.inlong.manager.service.group.InlongGroupService;
 import org.apache.inlong.manager.service.stream.InlongStreamService;
 import org.apache.inlong.manager.test.BaseTest;
 
-import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -62,14 +63,19 @@ public class ServiceBaseTest extends BaseTest {
     @Autowired
     protected InlongStreamService streamService;
 
-    @BeforeEach
-    public void login() {
+    @BeforeAll
+    public static void login() {
         UserInfo userInfo = new UserInfo();
         userInfo.setTenant(PUBLIC_TENANT);
         userInfo.setName(GLOBAL_OPERATOR);
         LoginUserUtils.setUserLoginInfo(userInfo);
     }
 
+    @AfterAll
+    public static void logout() {
+        LoginUserUtils.removeUserLoginInfo();
+    }
+
     @Test
     public void test() {
         LOGGER.info("The test class cannot be empty, otherwise 'No runnable 
methods exception' will be reported");
diff --git a/inlong-manager/manager-web/sql/changes-1.8.0.sql 
b/inlong-manager/manager-web/sql/changes-1.8.0.sql
index edd0abb7ac..b1ef5f8a78 100644
--- a/inlong-manager/manager-web/sql/changes-1.8.0.sql
+++ b/inlong-manager/manager-web/sql/changes-1.8.0.sql
@@ -78,6 +78,10 @@ ALTER TABLE tenant_user_role
 CREATE INDEX index_tenant
     ON tenant_user_role (tenant, is_deleted);
 
+INSERT INTO tenant_user_role(username, role_code, tenant, creator)
+    SELECT name, 'TENANT_ADMIN', 'public', 'inlong_init'
+    FROM user;
+
 -- To avoid the ambiguity, rename "tenant" in PulsarGroup & PulsarCluster to 
"pulsarTenant"
 UPDATE inlong_group SET ext_params = replace(ext_params, '"tenant"', 
'"pulsarTenant"');
 UPDATE inlong_cluster SET ext_params = replace(ext_params, '"tenant"', 
'"pulsarTenant"');
diff --git 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/filter/TenantInsertionFilter.java
 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/filter/TenantInsertionFilter.java
index 6cce47a23a..9b9f5ef3b1 100644
--- 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/filter/TenantInsertionFilter.java
+++ 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/filter/TenantInsertionFilter.java
@@ -68,7 +68,6 @@ public class TenantInsertionFilter implements Filter {
         }
 
         inlongWrapper.addParameter(BASIC_AUTH_TENANT_HEADER, tenant);
-        inlongWrapper.addBodyParam(BASIC_AUTH_TENANT_HEADER, tenant);
         filterChain.doFilter(inlongWrapper, servletResponse);
 
     }
diff --git 
a/inlong-manager/manager-web/src/test/java/org/apache/inlong/manager/web/filter/TenantInsertionFilterTest.java
 
b/inlong-manager/manager-web/src/test/java/org/apache/inlong/manager/web/filter/TenantInsertionFilterTest.java
index 73c3b092a1..db62200a70 100644
--- 
a/inlong-manager/manager-web/src/test/java/org/apache/inlong/manager/web/filter/TenantInsertionFilterTest.java
+++ 
b/inlong-manager/manager-web/src/test/java/org/apache/inlong/manager/web/filter/TenantInsertionFilterTest.java
@@ -111,8 +111,6 @@ public class TenantInsertionFilterTest extends 
WebFilterConfig {
             Assertions.assertEquals(targetTenant, tenant);
             Map<String, String> paraMap = 
HttpContextUtils.getParameterMapAll(request);
             
Assertions.assertTrue(paraMap.containsKey(BasicAuth.BASIC_AUTH_TENANT_HEADER));
-            String body = HttpContextUtils.getBodyString(request);
-            
Assertions.assertTrue(body.contains(BasicAuth.BASIC_AUTH_TENANT_HEADER));
         }
     }
 }
\ No newline at end of file

Reply via email to