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