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

📄 useraction.java

📁 Java开发的权限管理的例子
💻 JAVA
字号:
package org.artemis.manager.struts.action;

import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;
import com.gsta.eshore.framework.daoutil.CriteriaQuery;
import com.gsta.eshore.framework.daoutil.HqlQuery;
import com.gsta.eshore.framework.daoutil.PageSupport;
import com.gsta.eshore.framework.jcf.IState;
import com.gsta.eshore.framework.jcf.StateImpl;
import com.gsta.eshore.framework.util.AppUtils;
import com.gsta.eshore.framework.util.MD5;

import org.artemis.manager.common.Constants;
import org.artemis.manager.struts.form.UserRoleForm;
import org.artemis.manager.struts.form.UsersForm;
import org.artemis.right.model.User;
import org.artemis.right.model.UserRole;
import org.artemis.right.model.UserRoleId;

/** 
 * @author hewenqiang Jul 25, 2006 2:47:43 PM
 */
public class UserAction extends DelegateAction {
	private static Logger logger = Logger.getLogger(UserAction.class);
	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward executeAction(
			
		ActionMapping mapping,
		ActionForm form,
		HttpServletRequest request,
		HttpServletResponse response) {
		ActionForward myforward = null;
		String myaction = mapping.getParameter();
		logger.info(" UserAction action Name: " + myaction);
		
		if (isCancelled(request)) {
			if (logger.isInfoEnabled()) {
				logger.info(" UserAction " + mapping.getAttribute()
						+ " - action was cancelled");
			}
			return mapping.findForward("cancel");
		}

		if (AppUtils.isBlank(myaction)) {
			myforward = mapping.findForward("error");
		} else if ("usersList".equalsIgnoreCase(myaction)) {
			myforward = userlist(mapping, form, request, response);
		}else if("deleteUserRoleByUserId".equalsIgnoreCase(myaction)){
			 myforward=deleteUserRoleByUserId( mapping,form,request,response);
		} else if ("findRoleByUser".equalsIgnoreCase(myaction)) {
			myforward = findRoleByUser(mapping, form, request, response);
		} else if ("findFunctionByUser".equalsIgnoreCase(myaction)) {
			myforward = findFunctionByUser(mapping, form, request, response);
		}else if("findOtherRoleByUser".equalsIgnoreCase(myaction)){
			 myforward=findOtherRoleByUser( mapping,form,request,response);
		}else if("saveRoleToUser".equalsIgnoreCase(myaction)){
			myforward=saveRoleToUser( mapping,form,request,response);
		}else if("findUserById".equalsIgnoreCase(myaction)){
			myforward=findUserById( mapping,form,request,response);
		}else if("updateUserPassowrd".equalsIgnoreCase(myaction)){
			myforward=updateUserPassowrd( mapping,form,request,response);
		}else if("preupdateStatus".equalsIgnoreCase(myaction)){
			myforward=preupdateStatus( mapping,form,request,response);
		}else if("updateUserStatus".equalsIgnoreCase(myaction)){
			myforward=updateUserStatus( mapping,form,request,response);
		}else if("saveUser".equalsIgnoreCase(myaction)){
			myforward=saveUser( mapping,form,request,response);
		}
		else {
			myforward = mapping.findForward("error");
		}

		return myforward;
	}

	private ActionForward saveUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		UsersForm usersForm = (UsersForm) form;
		IState state=new StateImpl();
		User user=usersForm.getUser();
		try {
			if(getBiz().isUserExist(user.getName(), state)){
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.User.IsExist");
			}

			String id=getBiz().saveUser(Md5Password(user), state);
			logger.info("success saveUser,id = "+id);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
		} catch (Exception e) {
			return handleException(mapping, request, e, "UserAction's save");
		}
		return mapping.findForward("view");
	}
	
	private User Md5Password(User user){
		if(user.getPassword()!=null){
			user.setPassword(MD5.toMD5(user.getPassword()));
			//System.out.println("userAciotn user.getPassword() "+user.getPassword());
			return user;
		}
		return user;
	}

	private ActionForward updateUserStatus(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		logger.debug("Struts UserAction updateUserStatus");
		UsersForm usersForm = (UsersForm) form;
		User user=usersForm.getUser();
		String enabled=user.getEnabled();
		String userId=user.getId();

		IState state=new StateImpl();
		try {
			User olduser=getBiz().findUserById(userId, state);
			olduser.setEnabled(enabled);
			olduser.setNote(user.getNote());
			getBiz().updateUser(olduser, state);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
		} catch (Exception e) {
			    return handleException(mapping, request, e, "FunctionAction's updateUserStatus");
		}
		        return mapping.findForward("view");
	}

	private ActionForward preupdateStatus(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String id=request.getParameter("id");
		logger.info("Action preupdateStatus with id  "+id);
		removeRequestAttribute(mapping,request);
		IState state=new StateImpl();
		try {
			User user=getBiz().findUserById(id, state);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
			    request.setAttribute("user",user);
		} catch (Exception e) {
			    return handleException(mapping, request, e, "UserAction's preupdateStatus");
		}
		
		        return mapping.findForward("view");
	}

	private ActionForward updateUserPassowrd(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		logger.info("Struts UserAction updateUserById");
		UsersForm usersForm = (UsersForm) form;
		User user=usersForm.getUser();
		String passwordag=user.getPasswordag();
		   if(!passwordag.endsWith(user.getPassword())){//2次密码要相等
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.Password.NotEqual");
		   }
		IState state=new StateImpl();
		try {
			getBiz().updateUserPassowrd(user.getId(), MD5.toMD5(user.getPassword()), state);
			logger.info("updateFunctionById result  = "+state.isOK());
			if(!state.isOK())
				return mapping.findForward("fail");
		} catch (Exception e) {
			    return handleException(mapping, request, e, "FunctionAction's updateUserPassowrd");
		}
		        return mapping.findForward("view");
	}

	private ActionForward findUserById(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String id=request.getParameter("id");
		logger.info("Action findUserById with id  "+id);
		removeRequestAttribute(mapping,request);
		IState state=new StateImpl();
		try {
			User user=getBiz().findUserById(id, state);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
			    request.setAttribute("user",user);
		} catch (Exception e) {
			return handleException(mapping, request, e, "UserAction's findUserById");
		}
		
		return mapping.findForward("view");
	}

	private ActionForward saveRoleToUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String userId=request.getParameter("userId");		
		List userRoles=new ArrayList();
		UsersForm usersForm = (UsersForm) form;
		String[] strArray = usersForm.getStrArray();
		for (int i = 0; i < strArray.length; i++) {
			UserRole userRole=new UserRole();
			UserRoleId userRoleId=new UserRoleId();
			userRoleId.setRoleId(strArray[i]);
			userRoleId.setUserId(userId);
			userRole.setId(userRoleId);
			userRoles.add(userRole);
		}
		removeRequestAttribute(mapping,request);
		IState state=new StateImpl();
		try {
			getBiz().saveRolesToUser(userRoles, state);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
		} catch (Exception e) {
			    return handleException(mapping, request, e, "FunctionAction's saveRoleToUser");
		}
		        return mapping.findForward("view");
		
	}

	private ActionForward findOtherRoleByUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String curPageNO = request.getParameter("curPageNO");
		String userId = request.getParameter("userId");
		String myAction="findOtherRoleByUser.do";
		if(userId!=null)
			myAction="findOtherRoleByUser.do?userId="+userId;
		try {
			//HQL查找方式
			HqlQuery hq=new HqlQuery(myAction);
			hq.setCurPage(curPageNO);
			hq.setPageSize(Constants.PAGE_SIZE);
			IState state=new StateImpl();
			User user=getBiz().findUserById(userId, state);
			PageSupport ps= (PageSupport)getBiz().findOtherRoleByUser(hq, userId, state);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
			request.setAttribute("curPageNO",new Integer(ps.getCurPageNO()));
			request.setAttribute("offset", new Integer(ps.getOffset()+1));
			if(!AppUtils.isBlank(ps.getResultList()))
			request.setAttribute("toolBar", ps.getToolBar());
			request.setAttribute("roles", ps.getResultList());
			request.setAttribute("user", user);
		}catch (Exception e){
			return handleException(mapping, request, e, "FunctionAction's findOtherRoleByUser");
		}
		    return mapping.findForward("view");
	}

	private ActionForward findFunctionByUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String userId = request.getParameter("userId");
		logger.info("UserAction findFunctionByUser : "+userId);
		IState state=new StateImpl();
		try {
			removeRequestAttribute(mapping,request);
			User user=getBiz().findUserById(userId, state);
			List functions=getBiz().findFunctionByUser(userId, state);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
			request.setAttribute("functions", functions);
			request.setAttribute("user", user);
		} catch (Exception e) {
			    return handleException(mapping, request, e, "UserAction's findFunctionByUser");
		}
		
		        return mapping.findForward("view");
	}

	private ActionForward userlist(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String curPageNO = request.getParameter("curPageNO");
		String myaction;
		String search=request.getParameter("search");
		if(search==null){
			search="";
			myaction="usersList.do";
		}else{
			myaction="usersList.do?search="+search;
		}

		try {
			//Qbc查找方式
			//CriteriaQuery cq=new CriteriaQuery(CmsRight.class,curPageNO,myaction,myform);
			CriteriaQuery cq=new CriteriaQuery(User.class,curPageNO,myaction);
			cq.setPageSize(Constants.PAGE_SIZE);
//			cq.eq("rightId","002");//0条件
			
//			cq.like("rightUrl","u%");//2
//			cq.add(cq.and(cq.or(cq,0,1),cq,2));
			if(!AppUtils.isBlank(search)){
				System.out.println("查询内容 = "+search);
				cq.like("name",search+"%");//1
				
				cq.add();
			}
			IState state=new StateImpl();
			PageSupport ps= (PageSupport)getBiz().findAllUser(cq, state);
		
			//HQL查找方式
			/*
			HqlQuery hq=new HqlQuery(curPage,myaction,myform);
			hq.setQueryString("select c from CmsRight as c where c.rightId like ? or c.rightBox = ?");
			hq.addPara("0%",Types.VARCHAR);
			hq.addPara("box3",Types.VARCHAR);
			hq.setOrderby(" order by c.rightId asc");
			hq.setPageSize(2);
			hq.setOffset(true);
			PageSupport ps= service.find(hq);
			*/
			//printRequest(request);
			removeRequestAttribute(mapping,request);
			//printRequest(request);
			request.setAttribute("search",search);
			request.setAttribute("curPageNO",new Integer(ps.getCurPageNO()));
			request.setAttribute("offset", new Integer(ps.getOffset()+1));
			request.setAttribute("toolBar", ps.getToolBar());
			if(!AppUtils.isBlank(ps.getResultList()))
			request.setAttribute("list", ps.getResultList());
		}catch (Exception e){
			return handleException(mapping, request, e, "UserAction's userlist");
		}
		    return mapping.findForward("view");
	}

	
	private ActionForward findRoleByUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String userId = request.getParameter("userId");
		logger.info("UserAction findOtherRoleByUser : "+userId);
		IState state=new StateImpl();
		try {
			removeRequestAttribute(mapping,request);
			User user=getBiz().findUserById(userId, state);
			List roles=getBiz().findRoleByUser(userId, state);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
			request.setAttribute("roles", roles);
			request.setAttribute("user", user);
		} catch (Exception e) {
			    return handleException(mapping, request, e, "UserAction's findRoleByUser");
		}
		
		        return mapping.findForward("view");
	}
	private ActionForward deleteUserRoleByUserId(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		String userId=request.getParameter("userId");
		logger.info("Action deleteUserRoleByUserId with userId  "+userId);
		List userRoles=new ArrayList();
		UserRoleForm userRoleForm = (UserRoleForm) form;
		String[] strArray = userRoleForm.getStrArray();
		for (int i = 0; i < strArray.length; i++) {
			UserRole userRole=new UserRole();
			UserRoleId userRoleId=new UserRoleId();
			userRoleId.setUserId(userId);
			userRoleId.setRoleId(strArray[i]);
			userRole.setId(userRoleId);
			userRoles.add(userRole);
		}
		//removeRequestAttribute(mapping,request);
		IState state=new StateImpl();
		try {
			getBiz().deleteRoleFromUser(userRoles, state);
			if(!state.isOK())
				return handleException(mapping, request, ActionMessages.GLOBAL_MESSAGE, "error.ClientException");
		} catch (Exception e) {
			    return handleException(mapping, request, e, "UserAction's deleteUserRoleByUserId");
		}
				request.setAttribute("userId", userId);
				return mapping.findForward("view");
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -