From d00a8556665a0da737e8bbb1a5fd618f9abb0651 Mon Sep 17 00:00:00 2001 From: duandongmei Date: Tue, 30 Apr 2019 11:34:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E8=A7=92=E8=89=B2=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=B7=BB=E5=8A=A0=E5=AE=A1=E6=A0=B8=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=EF=BC=9B=20=E5=AE=A1=E6=A0=B8=E8=A7=92=E8=89=B2=E7=A6=81?= =?UTF-8?q?=E6=AD=A2=E4=BF=AE=E6=94=B9=E8=A7=92=E8=89=B2=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/nis/web/dao/SysMenuDao.java | 2 + src/main/java/com/nis/web/dao/SysMenuDao.xml | 7 ++++ .../java/com/nis/web/service/RoleService.java | 38 ++++++++++++++++++- .../webapp/WEB-INF/views/sys/roleForm.jsp | 7 +++- 4 files changed, 51 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/nis/web/dao/SysMenuDao.java b/src/main/java/com/nis/web/dao/SysMenuDao.java index 87af932e3..2850bff77 100644 --- a/src/main/java/com/nis/web/dao/SysMenuDao.java +++ b/src/main/java/com/nis/web/dao/SysMenuDao.java @@ -28,4 +28,6 @@ public interface SysMenuDao extends CrudDao{ String getMenuCodeByFunctionId(@Param("functionId")Integer functionId, @Param("parentId")String id); + List findSysMenuByCode(@Param("code") String code); + } \ No newline at end of file diff --git a/src/main/java/com/nis/web/dao/SysMenuDao.xml b/src/main/java/com/nis/web/dao/SysMenuDao.xml index 28ff2734f..40787cf05 100644 --- a/src/main/java/com/nis/web/dao/SysMenuDao.xml +++ b/src/main/java/com/nis/web/dao/SysMenuDao.xml @@ -103,6 +103,13 @@ + + diff --git a/src/main/java/com/nis/web/service/RoleService.java b/src/main/java/com/nis/web/service/RoleService.java index 78b184e9a..d9b3eaedf 100644 --- a/src/main/java/com/nis/web/service/RoleService.java +++ b/src/main/java/com/nis/web/service/RoleService.java @@ -1,14 +1,17 @@ package com.nis.web.service; +import java.util.ArrayList; import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.nis.domain.SysMenu; import com.nis.domain.SysRole; import com.nis.domain.SysUser; import com.nis.util.StringUtil; +import com.nis.web.dao.SysMenuDao; import com.nis.web.dao.SysRoleDao; import com.nis.web.security.UserUtils; @@ -16,6 +19,8 @@ import com.nis.web.security.UserUtils; public class RoleService extends BaseService { @Autowired private SysRoleDao roleDao; + @Autowired + private SysMenuDao menuDao; public List findAllRole() { return UserUtils.getRoleList(); @@ -52,6 +57,19 @@ public class RoleService extends BaseService { // 更新角色与菜单关联 roleDao.deleteRoleMenu(role); } + //针对audit菜单特殊处理[判断是否存在audit权限,如果存在则不新增,如果不存在则新增] + List auditMenuList=menuDao.findSysMenuByCode("save_and_audit"); + if(!StringUtil.isEmpty(auditMenuList) //库中存在“保存并下发”权限菜单 + && "saveAndAudit".equals(role.getName())//此角色为“保存并下发”角色 + && !checkAuditAuth(role.getMenuList(),auditMenuList.get(0))){//此角色没有分配“保存并下发”菜单 + if(!StringUtil.isEmpty(role.getMenuList())){ + role.getMenuList().add(auditMenuList.get(0)); + }else{ + List auditList=new ArrayList<>(); + auditList.add(auditMenuList.get(0)); + role.setMenuList(auditList); + } + } if (role.getMenuList().size() > 0){ roleDao.insertRoleMenu(role); @@ -80,7 +98,23 @@ public class RoleService extends BaseService { // // 清除权限缓存 // systemRealm.clearAllCachedAuthorizationInfo(); } - - + /** + * 判断角色是否为审核角色 + * true存在此角色 + * false不存在此角色 + */ + public boolean checkAuditAuth(List menuList,SysMenu menu){ + boolean flag=false; + if(StringUtil.isEmpty(menuList)){ + return flag; + } + for (SysMenu sysMenu : menuList) { + if(sysMenu.getId().equals(menu.getId())){ + flag=true; + break; + } + } + return flag; + } } diff --git a/src/main/webapp/WEB-INF/views/sys/roleForm.jsp b/src/main/webapp/WEB-INF/views/sys/roleForm.jsp index eb38d627e..6860f7231 100644 --- a/src/main/webapp/WEB-INF/views/sys/roleForm.jsp +++ b/src/main/webapp/WEB-INF/views/sys/roleForm.jsp @@ -103,7 +103,12 @@
- + + + + + +
*