Przeglądaj źródła

禁止删除系统默认数据

reghao 1 rok temu
rodzic
commit
4b5d1b49ea

+ 3 - 2
web/src/main/java/cn/reghao/devops/web/account/controller/RoleController.java

@@ -6,6 +6,7 @@ import cn.reghao.devops.web.account.model.po.Role;
 import cn.reghao.devops.web.account.model.vo.MenuTree;
 import cn.reghao.devops.web.account.service.MenuService;
 import cn.reghao.devops.web.account.service.RoleService;
+import cn.reghao.jutil.jdk.result.Result;
 import cn.reghao.jutil.jdk.result.WebResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -43,8 +44,8 @@ public class RoleController {
     @ApiOperation("删除角色")
     @DeleteMapping(value = "/{roleId}", produces = MediaType.APPLICATION_JSON_VALUE)
     public String deleteRole(@PathVariable("roleId") Integer roleId) {
-        roleService.delete(roleId);
-        return WebResult.success();
+        Result result = roleService.deleteRole(roleId);
+        return WebResult.result(result);
     }
 
     /**

+ 2 - 2
web/src/main/java/cn/reghao/devops/web/account/controller/UserController.java

@@ -71,8 +71,8 @@ public class UserController {
     @ApiOperation(value = "删除用户")
     @DeleteMapping(value = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
     public String deleteAccount(@PathVariable("id") Integer userId) {
-        accountService.deleteAccount(userId);
-        return WebResult.success();
+        Result result = accountService.deleteAccount(userId);
+        return WebResult.result(result);
     }
 
     @ApiOperation(value = "修改用户密码")

+ 1 - 1
web/src/main/java/cn/reghao/devops/web/account/service/AccountService.java

@@ -16,5 +16,5 @@ public interface AccountService {
     void updateAccountProfile(AccountProfile accountProfile);
     void updateAccountRole(AccountRole accountRole);
     void updateAccountStatus(Integer userId, Boolean enable);
-    void deleteAccount(Integer userId);
+    Result deleteAccount(Integer userId);
 }

+ 2 - 1
web/src/main/java/cn/reghao/devops/web/account/service/RoleService.java

@@ -5,6 +5,7 @@ import cn.reghao.devops.web.account.model.po.Menu;
 import cn.reghao.devops.web.account.model.po.Role;
 import cn.reghao.devops.web.account.model.po.User;
 import cn.reghao.devops.web.account.model.vo.RoleVO;
+import cn.reghao.jutil.jdk.result.Result;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 
@@ -18,7 +19,7 @@ import java.util.Set;
 public interface RoleService {
     void initRole();
     void addOrUpdate(RoleDto roleDto);
-    void delete(Integer roleId);
+    Result deleteRole(Integer roleId);
     void setRoleMenus(Integer roleId, Set<Menu> menus);
     Role getByName(String name);
     Page<RoleVO> getByPage(PageRequest pageRequest, String name);

+ 9 - 7
web/src/main/java/cn/reghao/devops/web/account/service/impl/AccountServiceImpl.java

@@ -8,6 +8,7 @@ import cn.reghao.devops.web.account.model.po.Role;
 import cn.reghao.devops.web.account.service.AccountService;
 import cn.reghao.devops.web.account.service.AccountSessionService;
 import cn.reghao.jutil.jdk.result.Result;
+import cn.reghao.jutil.jdk.result.ResultStatus;
 import cn.reghao.jutil.jdk.security.RandomString;
 import cn.reghao.devops.web.account.model.dto.AccountProfile;
 import cn.reghao.devops.web.account.model.dto.AccountRole;
@@ -139,16 +140,17 @@ public class AccountServiceImpl implements AccountService {
     }
 
     @Override
-    public void deleteAccount(Integer userId) {
+    public Result deleteAccount(Integer userId) {
+        if (userId == 1) {
+            return Result.result(ResultStatus.FAIL, String.format("不能删除系统默认 User"));
+        }
+
         User userEntity = userRepository.findById(userId).orElse(null);
         if (userEntity == null) {
-            return;
+            return Result.result(ResultStatus.FAIL, String.format("User 不存在"));
         }
 
-        if (userEntity.getId() == 1) {
-            log.error("不能删除管理员帐号");
-        } else {
-            userRepository.delete(userEntity);
-        }
+        userRepository.delete(userEntity);
+        return Result.success();
     }
 }

+ 4 - 0
web/src/main/java/cn/reghao/devops/web/account/service/impl/MenuServiceImpl.java

@@ -125,6 +125,10 @@ public class MenuServiceImpl implements MenuService {
     @Transactional(rollbackFor = Exception.class)
     @Override
     public synchronized Result deleteMenu(Integer menuId) {
+        if (menuId <= 5) {
+            return Result.result(ResultStatus.FAIL, String.format("不能删除系统默认 Menu"));
+        }
+
         Menu menu = menuRepository.findById(menuId).orElse(null);
         if (menu == null) {
             return Result.result(ResultStatus.FAIL, String.format("ID 为 %s 的 Menu 不存在", menuId));

+ 9 - 3
web/src/main/java/cn/reghao/devops/web/account/service/impl/RoleServiceImpl.java

@@ -11,6 +11,8 @@ import cn.reghao.devops.web.account.model.po.User;
 import cn.reghao.devops.web.account.model.po.UserAuthority;
 import cn.reghao.devops.web.account.model.vo.RoleVO;
 import cn.reghao.devops.web.account.service.RoleService;
+import cn.reghao.jutil.jdk.result.Result;
+import cn.reghao.jutil.jdk.result.ResultStatus;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
@@ -72,16 +74,20 @@ public class RoleServiceImpl implements RoleService {
     }
 
     @Override
-    public void delete(Integer roleId) {
+    public Result deleteRole(Integer roleId) {
+        if (roleId == 1) {
+            return Result.result(ResultStatus.FAIL, String.format("不能删除系统默认 Role"));
+        }
+
         Role role = roleRepository.getOne(roleId);
         List<User> users = getRoleUsers(roleId);
         if (!users.isEmpty()) {
-            log.error("还有用户分配有本角色");
-            return;
+            return Result.result(ResultStatus.FAIL, String.format("还有用户分配有本角色"));
         }
 
         role.getMenus().clear();
         roleRepository.delete(role);
+        return Result.success();
     }
 
     @Override