diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/role/SysRoleExceptionEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/role/SysRoleExceptionEnum.java index 4ea0b3433..f463d7828 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/role/SysRoleExceptionEnum.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/system/api/exception/enums/role/SysRoleExceptionEnum.java @@ -42,7 +42,12 @@ public enum SysRoleExceptionEnum implements AbstractExceptionEnum { /** * 必须选择公司范围集合 */ - PLEASE_FILL_DATA_SCOPE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "66", "指定部门类型的数据范围必须选择组织机构"); + PLEASE_FILL_DATA_SCOPE(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "66", "指定部门类型的数据范围必须选择组织机构"), + + /** + * 超级管理员角色编码不能被修改 + */ + SUPER_ADMIN_ROLE_CODE_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + SystemConstants.SYSTEM_EXCEPTION_STEP_CODE + "67", "超级管理员角色编码不能被修改"); /** * 错误编码 diff --git a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleServiceImpl.java b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleServiceImpl.java index bda1d0eb9..609c21cf5 100644 --- a/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleServiceImpl.java +++ b/kernel-s-system/system-business-role/src/main/java/cn/stylefeng/roses/kernel/system/modular/role/service/impl/SysRoleServiceImpl.java @@ -17,6 +17,7 @@ import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict; import cn.stylefeng.roses.kernel.system.api.UserServiceApi; +import cn.stylefeng.roses.kernel.system.api.constants.SystemConstants; import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException; import cn.stylefeng.roses.kernel.system.api.exception.enums.role.SysRoleExceptionEnum; import cn.stylefeng.roses.kernel.system.modular.role.entity.*; @@ -114,6 +115,15 @@ public class SysRoleServiceImpl extends ServiceImpl impl @Override public void edit(SysRoleRequest sysRoleRequest) { SysRole sysRole = this.querySysRole(sysRoleRequest); + + // 不能修改超级管理员编码 + if (SystemConstants.SUPER_ADMIN_ROLE_CODE.equals(sysRole.getRoleCode())) { + if (!sysRole.getRoleCode().equals(sysRoleRequest.getRoleCode())) { + throw new SystemModularException(SysRoleExceptionEnum.SUPER_ADMIN_ROLE_CODE_ERROR); + } + } + + // 拷贝属性 BeanUtil.copyProperties(sysRoleRequest, sysRole); // 不能修改状态,用修改状态接口修改状态