From 133280bc63ab5d7e6842f5f3c649aab6400ad985 Mon Sep 17 00:00:00 2001 From: yaoq Date: Tue, 6 Sep 2022 19:22:34 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=9D=83=E9=99=90=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cc/smtweb/system/bpm/web/sys/user/role/RoleHandler.java | 8 +++++--- .../cc/smtweb/system/bpm/web/sys/user/role/RoleRightContent.java | 6 ++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/role/RoleHandler.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/role/RoleHandler.java index 5d9ed9b..bd3a212 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/role/RoleHandler.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/role/RoleHandler.java @@ -56,9 +56,10 @@ public class RoleHandler { if (role_id <= 0) return R.error("未指定角色!"); SwMap formData = data.readMap("form"); Set set = formData.readLongSet("menu"); - if (PubUtil.isEmpty(set)) return R.error("未选择菜单!"); + //if (PubUtil.isEmpty(set)) return R.error("未选择菜单!"); Role role = RoleCache.getInstance().get(role_id); RoleRightContent rc = new RoleRightContent(role.getPrivilege()); + rc.resetItem(); for (Long menu_id : set) { MenuPlanItem item = MenuPlanCache.getInstance().getById(role.getSmpId(), menu_id); RoleRight right = rc.getRoleRight(item.getId()); @@ -66,8 +67,8 @@ public class RoleHandler { right = new RoleRight(); right.setId(item.getId()); right.setMenuId(item.getMenu()); - right.setMenu(1); } + right.setMenu(1); rc.saveItem(right); } if (mp_id > 0) { @@ -81,7 +82,8 @@ public class RoleHandler { } right.setFunc(formData.readStringSet("func")); right.setData(formData.readListMap("data")); - right.setField(MenuCache.getInstance().get(item.getMenu()).getRightSet(SwEnum.MenuRightType.FIELD.value), formData.readStringSet("write"), formData.readStringSet("read")); + if (item.getMenu() > 0L) + right.setField(MenuCache.getInstance().get(item.getMenu()).getRightSet(SwEnum.MenuRightType.FIELD.value), formData.readStringSet("write"), formData.readStringSet("read")); rc.saveItem(right); } role.setPrivilege(rc.toContentStr()); diff --git a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/role/RoleRightContent.java b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/role/RoleRightContent.java index 255d909..88faa42 100644 --- a/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/role/RoleRightContent.java +++ b/smtweb-framework/bpm/src/main/java/cc/smtweb/system/bpm/web/sys/user/role/RoleRightContent.java @@ -31,6 +31,12 @@ public class RoleRightContent { RoleRight right = new RoleRight(); } + public void resetItem() { + map.values().forEach(roleRight -> { + roleRight.setMenu(0); + }); + } + // 保存节点 public void saveItem(RoleRight item) { map.put(item.getId(), item);