📄 authorizationcontrolaction.java
字号:
/**
*
*/
package com.sunwah.baseapp.action;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
import com.sunwah.baseapp.common.Constants;
import com.sunwah.baseapp.system.vo.UserVO;
/**
* 页面资源权限控制类
*
* @author MARK
*
*/
public class AuthorizationControlAction extends ActionSupport implements
SessionAware {
/**
*
*/
private static final long serialVersionUID = -5171547353110102755L;
protected final Log log = LogFactory.getLog(getClass());
// 会话
private Map session;
// 查询
private boolean listFlag = false;
// 查看
private boolean viewFlag = false;
// 增加
private boolean addFlag = false;
// 修改
private boolean editFlag = false;
// 删除
private boolean deleteFlag = false;
// 扩展1
private boolean extFlag1 = false;
// 扩展2
private boolean extFlag2 = false;
/**
* 增删改查校验
*
* @param listAction
* @param viewAction
* @param addAction
* @param editAction
* @param deleteAction
*/
public void check(String listAction, String viewAction, String addAction,
String editAction, String deleteAction) {
UserVO user = (UserVO) session.get(Constants.SESSION_USER);
List resourceList = user.getResourceList();
listFlag = this.check(listAction, resourceList);
viewFlag = this.check(viewAction, resourceList);
addFlag = this.check(addAction, resourceList);
editFlag = this.check(editAction, resourceList);
deleteFlag = this.check(deleteAction, resourceList);
}
/**
* 增删改查+两个扩展校验
*
* @param listAction
* @param viewAction
* @param addAction
* @param editAction
* @param deleteAction
* @param extAction1
* @param extAction2
*/
public void check(String listAction, String viewAction, String addAction,
String editAction, String deleteAction, String extAction1,
String extAction2) {
this.check(listAction, viewAction, addAction, editAction, deleteAction);
extFlag1 = this.check(extAction1);
extFlag2 = this.check(extAction2);
}
private boolean check(String resourceAction, List resourceList) {
return (resourceAction != null && resourceList.contains(resourceAction)) ? true
: false;
}
/**
* 单个资源权限校验
*
* @param resourceAction
* @return
*/
public boolean check(String resourceAction) {
UserVO user = (UserVO) session.get(Constants.SESSION_USER);
List resourceList = user.getResourceList();
return (resourceAction != null && resourceList.contains(resourceAction)) ? true
: false;
}
/**
* 获取保存在SESSION的USER信息
*
* @return
*/
protected UserVO getSessionUser() {
return (UserVO) session.get(Constants.SESSION_USER);
}
public boolean isExtFlag2() {
return extFlag2;
}
public boolean isExtFlag1() {
return extFlag1;
}
public boolean isListFlag() {
return listFlag;
}
public boolean isAddFlag() {
return addFlag;
}
public boolean isViewFlag() {
return viewFlag;
}
public boolean isDeleteFlag() {
return deleteFlag;
}
public boolean isEditFlag() {
return editFlag;
}
public void setSession(Map session) {
this.session = session;
}
public Map getSession() {
return session;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -