审核角色自动添加审核菜单;

审核角色禁止修改角色名称
This commit is contained in:
duandongmei
2019-04-30 11:34:08 +08:00
committed by 段冬梅
parent 2b57e33d12
commit d00a855666
4 changed files with 51 additions and 3 deletions

View File

@@ -28,4 +28,6 @@ public interface SysMenuDao extends CrudDao<SysMenu>{
String getMenuCodeByFunctionId(@Param("functionId")Integer functionId, @Param("parentId")String id); String getMenuCodeByFunctionId(@Param("functionId")Integer functionId, @Param("parentId")String id);
List<SysMenu> findSysMenuByCode(@Param("code") String code);
} }

View File

@@ -103,6 +103,13 @@
</select> </select>
<select id="findSysMenuByCode" resultType="sysMenu">
SELECT *
FROM sys_menu a
WHERE a.del_flag = 1
and a.code=#{code}
</select>

View File

@@ -1,14 +1,17 @@
package com.nis.web.service; package com.nis.web.service;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.nis.domain.SysMenu;
import com.nis.domain.SysRole; import com.nis.domain.SysRole;
import com.nis.domain.SysUser; import com.nis.domain.SysUser;
import com.nis.util.StringUtil; import com.nis.util.StringUtil;
import com.nis.web.dao.SysMenuDao;
import com.nis.web.dao.SysRoleDao; import com.nis.web.dao.SysRoleDao;
import com.nis.web.security.UserUtils; import com.nis.web.security.UserUtils;
@@ -16,6 +19,8 @@ import com.nis.web.security.UserUtils;
public class RoleService extends BaseService { public class RoleService extends BaseService {
@Autowired @Autowired
private SysRoleDao roleDao; private SysRoleDao roleDao;
@Autowired
private SysMenuDao menuDao;
public List<SysRole> findAllRole() { public List<SysRole> findAllRole() {
return UserUtils.getRoleList(); return UserUtils.getRoleList();
@@ -52,6 +57,19 @@ public class RoleService extends BaseService {
// 更新角色与菜单关联 // 更新角色与菜单关联
roleDao.deleteRoleMenu(role); roleDao.deleteRoleMenu(role);
} }
//针对audit菜单特殊处理[判断是否存在audit权限如果存在则不新增如果不存在则新增]
List<SysMenu> 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<SysMenu> auditList=new ArrayList<>();
auditList.add(auditMenuList.get(0));
role.setMenuList(auditList);
}
}
if (role.getMenuList().size() > 0){ if (role.getMenuList().size() > 0){
roleDao.insertRoleMenu(role); roleDao.insertRoleMenu(role);
@@ -80,7 +98,23 @@ public class RoleService extends BaseService {
// // 清除权限缓存 // // 清除权限缓存
// systemRealm.clearAllCachedAuthorizationInfo(); // systemRealm.clearAllCachedAuthorizationInfo();
} }
/**
* 判断角色是否为审核角色
* true存在此角色
* false不存在此角色
*/
public boolean checkAuditAuth(List<SysMenu> 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;
}
} }

View File

@@ -103,7 +103,12 @@
<label class="col-md-3 control-label"><spring:message code="role_name"/>:</label> <label class="col-md-3 control-label"><spring:message code="role_name"/>:</label>
<div class="col-md-4"> <div class="col-md-4">
<input id="oldName" name="oldName" type="hidden" value="${role.name}"> <input id="oldName" name="oldName" type="hidden" value="${role.name}">
<form:input path="name" htmlEscape="false" maxlength="50" class="required form-control"/> <c:if test="${role.name eq 'saveAndAudit'}">
<form:input path="name" htmlEscape="false" readonly="true" maxlength="50" class="required form-control" />
</c:if>
<c:if test="${role.name ne 'saveAndAudit'}">
<form:input path="name" htmlEscape="false" maxlength="50" class="required form-control" />
</c:if>
</div> </div>
<span class="help-inline"><font color="red">*</font> </span> <span class="help-inline"><font color="red">*</font> </span>
</div> </div>