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

benjobs pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git


The following commit(s) were added to refs/heads/dev by this push:
     new 7b605d881 [Improve] Make sure this role is not bound by the user 
before removing the role (#1728)
7b605d881 is described below

commit 7b605d8815cbfb44784523ba1765daa74e9f5fbb
Author: 1996fanrui <[email protected]>
AuthorDate: Sun Oct 2 13:17:15 2022 +0800

    [Improve] Make sure this role is not bound by the user before removing the 
role (#1728)
---
 .../console/system/controller/RoleController.java      |  2 +-
 .../console/system/service/RoleMenuServie.java         |  2 +-
 .../streampark/console/system/service/RoleService.java |  4 ++--
 .../console/system/service/UserRoleService.java        |  2 +-
 .../system/service/impl/RoleMenuServiceImpl.java       |  5 ++---
 .../console/system/service/impl/RoleServiceImpl.java   | 18 +++++++++++-------
 .../system/service/impl/UserRoleServiceImpl.java       |  6 +++---
 7 files changed, 21 insertions(+), 18 deletions(-)

diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/RoleController.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/RoleController.java
index 575ec32cd..3e10c0c6f 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/RoleController.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/RoleController.java
@@ -84,7 +84,7 @@ public class RoleController {
     @DeleteMapping("delete")
     @RequiresPermissions("role:delete")
     public RestResponse deleteRole(Long roleId) {
-        this.roleService.removeById(roleId);
+        this.roleService.deleteRole(roleId);
         return RestResponse.success();
     }
 
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/RoleMenuServie.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/RoleMenuServie.java
index 6600dd55f..4ce55e7bf 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/RoleMenuServie.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/RoleMenuServie.java
@@ -25,7 +25,7 @@ import java.util.List;
 
 public interface RoleMenuServie extends IService<RoleMenu> {
 
-    void deleteRoleMenusByRoleId(String[] roleIds);
+    void deleteRoleMenusByRoleId(Long roleId);
 
     void deleteRoleMenusByMenuId(String[] menuIds);
 
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/RoleService.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/RoleService.java
index 91c9ba48c..fc3bb4006 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/RoleService.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/RoleService.java
@@ -38,7 +38,7 @@ public interface RoleService extends IService<Role> {
 
     void createRole(Role role);
 
-    void deleteRoles(String[] roleIds) throws Exception;
+    void deleteRole(Long roleId);
 
-    void updateRole(Role role) throws Exception;
+    void updateRole(Role role);
 }
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/UserRoleService.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/UserRoleService.java
index de31716ba..9f5a756c6 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/UserRoleService.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/UserRoleService.java
@@ -29,6 +29,6 @@ public interface UserRoleService extends IService<UserRole> {
 
     void deleteUserRolesByUserId(String[] userIds);
 
-    List<String> findUserIdsByRoleId(String[] roleIds);
+    List<Long> findUserIdsByRoleId(Long roleId);
 
 }
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/RoleMenuServiceImpl.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/RoleMenuServiceImpl.java
index a69c315ee..8490d47c6 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/RoleMenuServiceImpl.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/RoleMenuServiceImpl.java
@@ -37,9 +37,8 @@ public class RoleMenuServiceImpl extends 
ServiceImpl<RoleMenuMapper, RoleMenu>
 
     @Override
     @Transactional
-    public void deleteRoleMenusByRoleId(String[] roleIds) {
-        List<String> list = Arrays.asList(roleIds);
-        baseMapper.delete(new 
LambdaQueryWrapper<RoleMenu>().in(RoleMenu::getRoleId, list));
+    public void deleteRoleMenusByRoleId(Long roleId) {
+        baseMapper.delete(new 
LambdaQueryWrapper<RoleMenu>().eq(RoleMenu::getRoleId, roleId));
     }
 
     @Override
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/RoleServiceImpl.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/RoleServiceImpl.java
index f25f2723e..3a12285e1 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/RoleServiceImpl.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/RoleServiceImpl.java
@@ -17,6 +17,7 @@
 
 package org.apache.streampark.console.system.service.impl;
 
+import org.apache.streampark.common.util.AssertUtils;
 import org.apache.streampark.console.base.domain.Constant;
 import org.apache.streampark.console.base.domain.RestRequest;
 import org.apache.streampark.console.system.entity.Role;
@@ -42,6 +43,7 @@ import 
org.springframework.transaction.annotation.Transactional;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -93,16 +95,18 @@ public class RoleServiceImpl extends 
ServiceImpl<RoleMapper, Role> implements Ro
     }
 
     @Override
-    public void deleteRoles(String[] roleIds) throws Exception {
-        List<String> list = Arrays.asList(roleIds);
-        baseMapper.deleteBatchIds(list);
-        this.roleMenuService.deleteRoleMenusByRoleId(roleIds);
-        this.userRoleService.deleteUserRolesByRoleId(roleIds);
+    public void deleteRole(Long roleId) {
+        Role role = Optional.ofNullable(this.getById(roleId))
+            .orElseThrow(() -> new 
IllegalArgumentException(String.format("Role id [%s] not found", roleId)));
+        List<Long> userIdsByRoleId = 
userRoleService.findUserIdsByRoleId(roleId);
+        AssertUtils.isTrue(userIdsByRoleId == null || 
userIdsByRoleId.isEmpty(),
+            String.format("There are some users are bound to role %s , please 
unbind it first.", role.getRoleName()));
+        this.removeById(roleId);
+        this.roleMenuService.deleteRoleMenusByRoleId(roleId);
     }
 
     @Override
-    public void updateRole(Role role) throws Exception {
-        String[] roleId = {String.valueOf(role.getRoleId())};
+    public void updateRole(Role role) {
         role.setModifyTime(new Date());
         baseMapper.updateById(role);
         roleMenuMapper.delete(
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/UserRoleServiceImpl.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/UserRoleServiceImpl.java
index 993be0755..ca965d0b3 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/UserRoleServiceImpl.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/UserRoleServiceImpl.java
@@ -49,12 +49,12 @@ public class UserRoleServiceImpl extends 
ServiceImpl<UserRoleMapper, UserRole>
     }
 
     @Override
-    public List<String> findUserIdsByRoleId(String[] roleIds) {
+    public List<Long> findUserIdsByRoleId(Long roleId) {
         List<UserRole> list =
             baseMapper.selectList(
-                new LambdaQueryWrapper<UserRole>().in(UserRole::getRoleId, 
(Object) roleIds));
+                new LambdaQueryWrapper<UserRole>().eq(UserRole::getRoleId, 
roleId));
         return list.stream()
-            .map(userRole -> String.valueOf(userRole.getUserId()))
+            .map(UserRole::getUserId)
             .collect(Collectors.toList());
     }
 }

Reply via email to