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);