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

📄 powerusereditaction.java

📁 Struts_Spring_Hibernate实现的基于RBAC的权限管理系统
💻 JAVA
字号:
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.xaccp.struts.action;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.xaccp.biz.po.Power;
import com.xaccp.biz.po.Role;
import com.xaccp.biz.po.User;
import com.xaccp.biz.po.UserPower;
import com.xaccp.biz.po.UserRole;
import com.xaccp.biz.service.PowerService;
import com.xaccp.biz.service.UserService;
import com.xaccp.struts.form.PowerUserEditForm;
import com.xaccp.util.PowerConstants;
import com.xaccp.util.PowerUtil;


public class PowerUserEditAction extends Action {
	private UserService userService;
	private PowerService powerService;
	
	public PowerService getPowerService() {
		return powerService;
	}

	public void setPowerService(PowerService powerService) {
		this.powerService = powerService;
	}

	public UserService getUserService() {
		return userService;
	}

	public void setUserService(UserService userService) {
		this.userService = userService;
	}

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {

		PowerUtil.assertUserInPower(request, PowerConstants.POWER_EDIT_USERS_POWER);
		
		PowerUserEditForm f = (PowerUserEditForm) form;
		
		User user = editUserByForm(f);
		
		userService.saveUser(user);
		
		return mapping.findForward("ok");
	}
	
	private User editUserByForm(PowerUserEditForm f) {

		//查出旧的user对象
		User user = userService.findUserById(f.getUserId());
		//修改计算策略
		user.setStrategy(f.getStrategy());
		
		//构建新的角色集合
		Set userRoles = new HashSet();
		for (int i = 0; i < f.getRoleIds().length; i++) {
			Role role = powerService.findRoleById(f.getRoleIds()[i]);
			UserRole userRole = new UserRole(role, user);
			userRoles.add(userRole);
		}
		//clear()方法用来删除旧的角色
		//addAll()方法添加新的角色
		user.getTblUserRoles().clear();
		user.getTblUserRoles().addAll(userRoles);
		
		//构建新的权限集合
		Set userPowers = new HashSet();
		for (int i = 0; f.getPowerStates()!=null && i < f.getPowerStates().length; i++) {
			//如果权限的状态为2,即默认状态则不处理
			if (f.getPowerStates()[i]!=2) {
				Power power = powerService.findPowerById(f.getPowerIds()[i]);
				UserPower userPower = new UserPower(power, user, f.getPowerStates()[i]);
				userPowers.add(userPower);
			}
		}
		user.getTblUserPowers().clear();
		user.getTblUserPowers().addAll(userPowers);
		
		return user;
	}
}

⌨️ 快捷键说明

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