From 37db3c5c7c71ddd2f4b773b8f5969b716dd81c7f Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Wed, 28 Jun 2023 15:51:29 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=907.6.0=E3=80=91=E3=80=90sys=E3=80=91?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E4=BF=AE=E6=94=B9=E9=BB=98=E8=AE=A4=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E7=9A=84=E8=B4=A6=E5=8F=B7=E5=92=8C=E8=B6=85?= =?UTF-8?q?=E7=BA=A7=E7=AE=A1=E7=90=86=E5=91=98=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel/sys/api/constants/SysConstants.java | 5 +++++ .../modular/user/enums/SysUserExceptionEnum.java | 12 +++++++++++- .../user/service/impl/SysUserServiceImpl.java | 13 +++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/constants/SysConstants.java b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/constants/SysConstants.java index 089e96bab..445db5f4b 100644 --- a/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/constants/SysConstants.java +++ b/kernel-s-sys/sys-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/constants/SysConstants.java @@ -62,4 +62,9 @@ public interface SysConstants { */ Integer SUPER_ADMIN_INIT_LISTENER_SORT = 400; + /** + * 管理员角色的账号 + */ + String ADMIN_USER_ACCOUNT = "admin"; + } diff --git a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/enums/SysUserExceptionEnum.java b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/enums/SysUserExceptionEnum.java index f5b2adb53..a30c22696 100644 --- a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/enums/SysUserExceptionEnum.java +++ b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/enums/SysUserExceptionEnum.java @@ -48,7 +48,17 @@ public enum SysUserExceptionEnum implements AbstractExceptionEnum { /** * 不能修改超级管理员的角色 */ - CANT_CHANGE_ADMIN_ROLE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10007", "不能修改超级管理员的角色"); + CANT_CHANGE_ADMIN_ROLE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10007", "不能修改超级管理员的角色"), + + /** + * 不能修改管理员admin的账号 + */ + CANT_CHANGE_ADMIN_ACCOUNT(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10008", "不能修改管理员admin的账号"), + + /** + * 不能修改管理员admin的超级管理员标识 + */ + CANT_CHANGE_ADMIN_FLAG(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10009", "不能修改管理员admin的超级管理员标识"); /** * 错误编码 diff --git a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java index ae9138ee9..e770d747b 100644 --- a/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java +++ b/kernel-s-sys/sys-business-hr/src/main/java/cn/stylefeng/roses/kernel/sys/modular/user/service/impl/SysUserServiceImpl.java @@ -17,6 +17,7 @@ import cn.stylefeng.roses.kernel.file.api.constants.FileConstants; import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; import cn.stylefeng.roses.kernel.sys.api.callback.RemoveUserCallbackApi; +import cn.stylefeng.roses.kernel.sys.api.constants.SysConstants; import cn.stylefeng.roses.kernel.sys.api.enums.user.UserStatusEnum; import cn.stylefeng.roses.kernel.sys.api.exception.enums.UserExceptionEnum; import cn.stylefeng.roses.kernel.sys.api.expander.SysConfigExpander; @@ -125,6 +126,18 @@ public class SysUserServiceImpl extends ServiceImpl impl @Override public void edit(SysUserRequest sysUserRequest) { SysUser sysUser = this.querySysUser(sysUserRequest); + + // 不能修改admin账号的超级管理员标识和账号 + if (SysConstants.ADMIN_USER_ACCOUNT.equals(sysUser.getAccount())) { + if (!sysUser.getAccount().equals(sysUserRequest.getAccount())) { + throw new ServiceException(SysUserExceptionEnum.CANT_CHANGE_ADMIN_ACCOUNT); + } + if (YesOrNotEnum.N.getCode().equals(sysUserRequest.getSuperAdminFlag())) { + throw new ServiceException(SysUserExceptionEnum.CANT_CHANGE_ADMIN_FLAG); + } + } + + // copy属性 BeanUtil.copyProperties(sysUserRequest, sysUser); // 编辑不能修改密码