From d569c800958f9694bca19f33ebaefa517153a1b2 Mon Sep 17 00:00:00 2001 From: stylefeng Date: Mon, 24 Mar 2025 23:28:20 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.3.4=E3=80=91=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E7=BB=91=E5=AE=9A=E5=8A=9F=E8=83=BD=E7=BC=96?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../role/service/impl/RoleBindOptionImpl.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleBindOptionImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleBindOptionImpl.java index 334f43104..d9e68e9bb 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleBindOptionImpl.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/RoleBindOptionImpl.java @@ -3,8 +3,10 @@ package cn.stylefeng.roses.kernel.sys.modular.role.service.impl; import cn.hutool.core.util.ObjectUtil; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.sys.api.SysUserRoleServiceApi; +import cn.stylefeng.roses.kernel.sys.api.entity.SysMenuOptions; import cn.stylefeng.roses.kernel.sys.api.enums.PermissionNodeTypeEnum; import cn.stylefeng.roses.kernel.sys.api.pojo.role.request.RoleBindPermissionRequest; +import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuOptionsService; import cn.stylefeng.roses.kernel.sys.modular.role.action.RoleAssignOperateAction; import cn.stylefeng.roses.kernel.sys.modular.role.action.RoleBindLimitAction; import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleLimit; @@ -38,6 +40,9 @@ public class RoleBindOptionImpl implements RoleAssignOperateAction, RoleBindLimi @Resource private SysUserRoleServiceApi sysUserRoleServiceApi; + @Resource + private SysMenuOptionsService sysMenuOptionsService; + @Override public PermissionNodeTypeEnum getNodeType() { return PermissionNodeTypeEnum.OPTIONS; @@ -55,10 +60,16 @@ public class RoleBindOptionImpl implements RoleAssignOperateAction, RoleBindLimi } if (roleBindPermissionRequest.getChecked()) { - SysRoleMenuOptions sysRoleMenuOptions = new SysRoleMenuOptions(); - sysRoleMenuOptions.setRoleId(roleId); - sysRoleMenuOptions.setMenuOptionId(menuOptionId); - this.sysRoleMenuOptionsService.save(sysRoleMenuOptions); + // 获取菜单功能的信息 + SysMenuOptions sysMenuOptions = sysMenuOptionsService.getById(menuOptionId); + if (sysMenuOptions != null) { + SysRoleMenuOptions sysRoleMenuOptions = new SysRoleMenuOptions(); + sysRoleMenuOptions.setRoleId(roleId); + sysRoleMenuOptions.setAppId(sysMenuOptions.getAppId()); + sysRoleMenuOptions.setMenuId(sysMenuOptions.getMenuId()); + sysRoleMenuOptions.setMenuOptionId(menuOptionId); + this.sysRoleMenuOptionsService.save(sysRoleMenuOptions); + } } else { // 当前正在进行的角色,不能禁用掉自己的权限