From 3fe5356431728628aa58caf5926d179843407206 Mon Sep 17 00:00:00 2001
From: fengshuonan <sn93@qq.com>
Date: Fri, 8 Sep 2023 23:06:54 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=908.0=E3=80=91=E3=80=90role=E3=80=91?=
 =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=BB=91=E5=AE=9A=E6=9D=83=E9=99=90=E5=A2=9E?=
 =?UTF-8?q?=E5=8A=A0=E8=8C=83=E5=9B=B4=E7=AD=9B=E9=80=89=EF=BC=8C=E5=A2=9E?=
 =?UTF-8?q?=E5=8A=A0=E5=A2=9E=E5=8A=A0=E7=BB=91=E5=AE=9A=E8=8F=9C=E5=8D=95?=
 =?UTF-8?q?=E5=8A=9F=E8=83=BD=E7=9A=84=E7=AD=9B=E9=80=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../modular/role/service/impl/RoleBindOptionImpl.java    | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

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 0b4a8eb93..ed429f451 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
@@ -1,5 +1,6 @@
 package cn.stylefeng.roses.kernel.sys.modular.role.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 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;
@@ -13,6 +14,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Set;
 
 /**
  * 角色绑定功能的限制
@@ -35,11 +37,16 @@ public class RoleBindOptionImpl implements RoleAssignOperateAction, RoleBindLimi
     }
 
     @Override
-    public void doOperateAction(RoleBindPermissionRequest roleBindPermissionRequest) {
+    public void doOperateAction(RoleBindPermissionRequest roleBindPermissionRequest, Set<Long> roleLimitMenuIdsAndOptionIds) {
 
         Long roleId = roleBindPermissionRequest.getRoleId();
         Long menuOptionId = roleBindPermissionRequest.getNodeId();
 
+        // 非法操作
+        if (ObjectUtil.isNotEmpty(roleLimitMenuIdsAndOptionIds) && !roleLimitMenuIdsAndOptionIds.contains(menuOptionId)) {
+            return;
+        }
+
         if (roleBindPermissionRequest.getChecked()) {
             SysRoleMenuOptions sysRoleMenuOptions = new SysRoleMenuOptions();
             sysRoleMenuOptions.setRoleId(roleId);