This is an automated email from the ASF dual-hosted git repository. vernedeng pushed a commit to branch branch-1.8 in repository https://gitbox.apache.org/repos/asf/inlong.git
commit 5189f56377876676deb184ec091a6716e190dd59 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
