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 2b5146c6d7 [INLONG-8442][Manager] Support delete tenant and tenant 
role (#8463)
2b5146c6d7 is described below

commit 2b5146c6d71658a35a52b1d44b1cf8272375520d
Author: castor <[email protected]>
AuthorDate: Fri Jul 7 23:09:06 2023 +0800

    [INLONG-8442][Manager] Support delete tenant and tenant role (#8463)
    
    Co-authored-by: castorqin <[email protected]>
---
 .../inlong/manager/service/tenant/InlongTenantService.java   |  7 +++++++
 .../manager/service/tenant/InlongTenantServiceImpl.java      | 12 ++++++++++++
 .../inlong/manager/service/user/TenantRoleService.java       |  8 ++++++++
 .../inlong/manager/service/user/TenantRoleServiceImpl.java   | 11 +++++++++++
 .../manager/web/controller/InlongTenantController.java       |  8 ++++++++
 .../manager/web/controller/InlongTenantRoleController.java   |  7 +++++++
 6 files changed, 53 insertions(+)

diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/tenant/InlongTenantService.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/tenant/InlongTenantService.java
index 909a73018d..0d76ce0e13 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/tenant/InlongTenantService.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/tenant/InlongTenantService.java
@@ -61,4 +61,11 @@ public interface InlongTenantService {
      */
     Boolean update(InlongTenantRequest request);
 
+    /**
+     * Delete tenant by name
+     *
+     * @param name tenant name
+     * @return true= delete success/ false = delete fail
+     */
+    Boolean delete(String name);
 }
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/tenant/InlongTenantServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/tenant/InlongTenantServiceImpl.java
index 48b059ba6c..6aea00c35b 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/tenant/InlongTenantServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/tenant/InlongTenantServiceImpl.java
@@ -21,6 +21,7 @@ import 
org.apache.inlong.manager.common.consts.InlongConstants;
 import org.apache.inlong.manager.common.enums.ErrorCodeEnum;
 import org.apache.inlong.manager.common.exceptions.BusinessException;
 import org.apache.inlong.manager.common.util.CommonBeanUtils;
+import org.apache.inlong.manager.common.util.Preconditions;
 import org.apache.inlong.manager.dao.entity.InlongTenantEntity;
 import org.apache.inlong.manager.dao.mapper.InlongTenantEntityMapper;
 import org.apache.inlong.manager.pojo.common.PageResult;
@@ -121,6 +122,17 @@ public class InlongTenantServiceImpl implements 
InlongTenantService {
         return true;
     }
 
+    @Override
+    public Boolean delete(String name) {
+        String operator = LoginUserUtils.getLoginUser().getName();
+        log.info("begin to delete inlong tenant name={} by user={}", name, 
operator);
+        InlongTenantEntity inlongTenantEntity = 
inlongTenantEntityMapper.selectByName(name);
+        int success = 
inlongTenantEntityMapper.deleteById(inlongTenantEntity.getId());
+        Preconditions.expectTrue(success == 1, "delete failed");
+        log.info("success delete inlong tenant name={} by user={}", name, 
operator);
+        return true;
+    }
+
     private void setTargetTenantList(InlongTenantPageRequest request, UserInfo 
userInfo) {
         request.setKeyword(null);
         if (isInlongRoles(userInfo)) {
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 ec9e9f4e6c..6add8e0a28 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
@@ -58,4 +58,12 @@ public interface TenantRoleService {
      * List tenant by given username
      */
     List<String> listTenantByUsername(String username);
+
+    /**
+     * Delete tenant role by id
+     *
+     * @param id tenant role
+     * @return true = delete success/ false = delete fail
+     */
+    Boolean delete(Integer id);
 }
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 af1ec7c1ed..a0c038c3de 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
@@ -27,6 +27,7 @@ import 
org.apache.inlong.manager.dao.entity.TenantUserRoleEntity;
 import org.apache.inlong.manager.dao.mapper.InlongTenantEntityMapper;
 import org.apache.inlong.manager.dao.mapper.TenantUserRoleEntityMapper;
 import org.apache.inlong.manager.pojo.common.PageResult;
+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;
@@ -126,4 +127,14 @@ public class TenantRoleServiceImpl implements 
TenantRoleService {
         return tenantUserRoleEntityMapper.listByUsername(username);
     }
 
+    @Override
+    public Boolean delete(Integer id) {
+        String operator = LoginUserUtils.getLoginUser().getName();
+        log.info("begin to delete inlong tenant role id={} by user={}", id, 
operator);
+        int success = tenantUserRoleEntityMapper.deleteById(id);
+        Preconditions.expectTrue(success == 1, "delete tenant role failed");
+        log.info("success delete inlong tenant role id={} by user={}", id, 
operator);
+        return true;
+    }
+
 }
diff --git 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongTenantController.java
 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongTenantController.java
index 8a078f653c..1726244396 100644
--- 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongTenantController.java
+++ 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongTenantController.java
@@ -82,4 +82,12 @@ public class InlongTenantController {
         return Response.success(tenantService.update(request));
     }
 
+    @RequestMapping(value = "/tenant/delete/{name}", method = 
RequestMethod.GET)
+    @ApiOperation(value = "Delete inlong tenant by name")
+    @ApiImplicitParam(name = "name", dataTypeClass = String.class, required = 
true)
+    @RequiresRoles(logical = Logical.OR, value = {INLONG_ADMIN})
+    public Response<Boolean> delete(@PathVariable String name) {
+        return Response.success(tenantService.delete(name));
+    }
+
 }
diff --git 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongTenantRoleController.java
 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongTenantRoleController.java
index 6806fd9e1e..39a9484d7c 100644
--- 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongTenantRoleController.java
+++ 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongTenantRoleController.java
@@ -81,4 +81,11 @@ public class InlongTenantRoleController {
         return Response.success(tenantRoleService.listByCondition(request));
     }
 
+    @RequestMapping(value = "/role/tenant/delete/{id}", method = 
RequestMethod.DELETE)
+    @ApiOperation(value = "Delete tenant role by ID")
+    @ApiImplicitParam(name = "id", dataTypeClass = Integer.class, required = 
true)
+    @RequiresRoles(logical = Logical.OR, value = {UserRoleCode.TENANT_ADMIN, 
UserRoleCode.INLONG_ADMIN})
+    public Response<Boolean> delete(@PathVariable int id) {
+        return Response.success(tenantRoleService.delete(id));
+    }
 }

Reply via email to