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 @@
- + + + + + +
*