From 38b980aeebd41b688b668dcd4d8cde8438149a8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Wed, 1 Nov 2023 16:34:51 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=20=E6=99=AE=E9=80=9A?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E7=BC=96=E8=BE=91=E4=BD=BF=E7=94=A8=E5=86=85?= =?UTF-8?q?=E7=BD=AE=E7=AE=A1=E7=90=86=E5=91=98code=E8=B6=8A=E6=9D=83?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/service/impl/SysRoleServiceImpl.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java index 8c80901c..ad1065d4 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java @@ -192,20 +192,22 @@ public class SysRoleServiceImpl implements ISysRoleService { if (ObjectUtil.isNotNull(role.getRoleId()) && LoginHelper.isSuperAdmin(role.getRoleId())) { throw new ServiceException("不允许操作超级管理员角色"); } + String[] keys = new String[]{TenantConstants.SUPER_ADMIN_ROLE_KEY, TenantConstants.TENANT_ADMIN_ROLE_KEY}; // 新增不允许使用 管理员标识符 if (ObjectUtil.isNull(role.getRoleId()) - && StringUtils.equalsAny(role.getRoleKey(), - TenantConstants.SUPER_ADMIN_ROLE_KEY, TenantConstants.TENANT_ADMIN_ROLE_KEY)) { + && StringUtils.equalsAny(role.getRoleKey(), keys)) { throw new ServiceException("不允许使用系统内置管理员角色标识符!"); } // 修改不允许修改 管理员标识符 if (ObjectUtil.isNotNull(role.getRoleId())) { SysRole sysRole = baseMapper.selectById(role.getRoleId()); // 如果标识符不相等 判断为修改了管理员标识符 - if (!StringUtils.equals(sysRole.getRoleKey(), role.getRoleKey()) - && StringUtils.equalsAny(sysRole.getRoleKey(), - TenantConstants.SUPER_ADMIN_ROLE_KEY, TenantConstants.TENANT_ADMIN_ROLE_KEY)) { - throw new ServiceException("不允许修改系统内置管理员角色标识符!"); + if (!StringUtils.equals(sysRole.getRoleKey(), role.getRoleKey())) { + if (StringUtils.equalsAny(sysRole.getRoleKey(), keys)) { + throw new ServiceException("不允许修改系统内置管理员角色标识符!"); + } else if (StringUtils.equalsAny(role.getRoleKey(), keys)) { + throw new ServiceException("不允许使用系统内置管理员角色标识符!"); + } } } }