You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

62 lines
1.8 KiB
Java

package com.manage.controller;
import com.manage.vo.Power_UserVo;
import com.manage.vo.User_Dept_Menu;
import org.apache.commons.lang3.StringUtils;
import javax.servlet.jsp.*;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.tagext.TagSupport;
import java.util.List;
import java.util.Set;
/**
* @ProjectName:
* @Description:
* @Param 传输参数
* @Return
* @Author: 曾文和
* @CreateDate: 2019/8/14 11:15
* @UpdateUser: 曾文和
* @UpdateDate: 2019/8/14 11:15
* @UpdateRemark: 更新说明
* @Version: 1.0
*/
public class HasAnyPermission extends TagSupport {
private String permissions;
public String getPermissions() {
return permissions;
}
public void setPermissions(String permissions) {
this.permissions = permissions;
}
@Override
public int doStartTag() throws JspException {
HttpSession session = pageContext.getSession();
String[] arrPermissions = permissions.split(",");
//用户是否分配了权限 
Power_UserVo user = (Power_UserVo)session.getAttribute("CURRENT_USER");
//系统管理员全部放过
if(user.getRoleId() == 0){
return TagSupport.EVAL_BODY_INCLUDE;
}
List<User_Dept_Menu> hasPermissions = user.getMenuList();
if(null != hasPermissions && !hasPermissions.isEmpty()){
for (User_Dept_Menu pm : hasPermissions){
if(StringUtils.isNoneBlank(pm.getMenuUrl())){
for (String psermission : arrPermissions){
//用户分配的权限中,是否包含该权限
if (pm.getMenuUrl().equals(psermission)){
return TagSupport.EVAL_BODY_INCLUDE;
}
}
}
}
}
return TagSupport.SKIP_BODY;
}
}