📄 authaction.java
字号:
package cn.com.sdcncsi.lunch.action;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeSet;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.interceptor.SessionAware;
import cn.com.sdcncsi.lunch.domain.Authorities;
import cn.com.sdcncsi.lunch.domain.Roles;
import cn.com.sdcncsi.lunch.domain.User;
import cn.com.sdcncsi.lunch.utils.Constants;
import com.opensymphony.xwork2.ActionSupport;
public class AuthAction extends ActionSupport implements SessionAware{
private static Log logger = LogFactory.getLog(AuthAction.class.getName());
/* (non-Javadoc)
* @see com.opensymphony.xwork2.ActionSupport#execute()
*/
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
User user = (User)session.get(Constants.USER);
StringBuffer authList = new StringBuffer();
Iterator roles = user.getUserRoles().iterator();
Collection auths = new ArrayList();
Collection auths2 = new ArrayList();
while(roles.hasNext()){
Roles role = (Roles)roles.next();
Iterator authorities = role.getRoleAuthorities().iterator();
while(authorities.hasNext()){
Authorities authority = (Authorities)authorities.next();
logger.debug("authority:"+authority.getId());
if (!auths.contains(authority)){
auths.add(authority);
logger.debug("add authority:"+authority.getId());
//authList.append("<a href=\"<s:url action=\"" + ServletActionContext.getRequest().getContextPath() + authority.getAuthorityNamespace() + "/" + authority.getAuthorityUrl() + "\"/>\" >" + authority.getAuthorityName() + "</a> | ");
//auths2.add(authority);
}
}
}
//auths2 = sortAuth(auths);
ServletActionContext.getRequest().setAttribute("authList", auths);
//ServletActionContext.getRequest().setAttribute("rootPath", ServletActionContext.getRequest().getContextPath());
return SUCCESS;
}
private Collection sortAuth(Collection auths) {
Collection auths2 = new ArrayList();
try{
Iterator its = auths.iterator();
Authorities authority = null;
if (its.hasNext())
authority = (Authorities)its.next();
do{
logger.debug("authority--:"+authority.getId());
Iterator inits = auths.iterator();
Authorities auth = null;
while(inits.hasNext()){
logger.debug("authority:"+authority.getAuthorityOrder());
Authorities authority2 = (Authorities)inits.next();
logger.debug("authority2:"+authority2.getAuthorityOrder());
if (authority.getAuthorityOrder() > authority2.getAuthorityOrder()){
authority = authority2;
}
}
auths2.add(authority);
//authorityTmp = (Authorities)its.next();
logger.debug("authority:"+authority.getId());
}while(its.hasNext());
}
catch(Exception e){
e.printStackTrace();
}
return auths2;
}
private Map session;
public void setSession(Map session) {
// TODO Auto-generated method stub
this.session = session;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -