⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 authaction.java

📁 因为许多人出去吃饭都一个人付帐
💻 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>&nbsp;|&nbsp;");
					//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 + -