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

📄 powerservice.java

📁 Struts_Spring_Hibernate实现的基于RBAC的权限管理系统
💻 JAVA
字号:
package com.xaccp.biz.service;

import java.util.*;

import com.xaccp.biz.dao.*;
import com.xaccp.biz.po.*;
import com.xaccp.biz.service.power.PowerStrategy;
import com.xaccp.biz.service.power.PowerStrategyFactory;

public class PowerService {

	private PowerDAO powerDAO;
	private RoleDAO roleDAO;
	private UserDAO userDAO;
	private RolePowerDAO rolePowerDAO;
	private UserPowerDAO userPowerDAO;
	
	public RolePowerDAO getRolePowerDAO() {
		return rolePowerDAO;
	}
	public void setRolePowerDAO(RolePowerDAO rolePowerDAO) {
		this.rolePowerDAO = rolePowerDAO;
	}
	public UserPowerDAO getUserPowerDAO() {
		return userPowerDAO;
	}
	public void setUserPowerDAO(UserPowerDAO userPowerDAO) {
		this.userPowerDAO = userPowerDAO;
	}
	public UserDAO getUserDAO() {
		return userDAO;
	}
	public void setUserDAO(UserDAO userDAO) {
		this.userDAO = userDAO;
	}
	public PowerDAO getPowerDAO() {
		return powerDAO;
	}
	public void setPowerDAO(PowerDAO powerDAO) {
		this.powerDAO = powerDAO;
	}
	public RoleDAO getRoleDAO() {
		return roleDAO;
	}
	public void setRoleDAO(RoleDAO roleDAO) {
		this.roleDAO = roleDAO;
	}
	public List findAllRoles() {
		return roleDAO.findAll();
	}
	
	/**
	 * 获取指定用户所拥有的权限
	 * @param user
	 * @return
	 */
	public Map getUserPower(User user) {
		List powers = powerDAO.findAll();
		PowerStrategy strategy = PowerStrategyFactory.create(user.getStrategy());
		return strategy.buildPower(powers, user);
	}
	
	public List findAllPowers() {
		return powerDAO.findAll();
	}
	public Role findRoleById(int id) {
		return roleDAO.findById(id);
	}
	public Power findPowerById(int id) {
		return powerDAO.findById(id);
	}
	public void saveRole(Role role) {
		roleDAO.save(role);
		
	}
	
	public void deleteRole(int roleId) {
		deleteRole(roleId, false);
	}
	
	/**
	 * 删除角色
	 * @param roleId
	 * @param delSon
	 */
	public void deleteRole(int roleId, boolean delSon) {
		if (!delSon) {
			Role role = roleDAO.findById(roleId);
			role.getTblRoles().clear();
			roleDAO.delete(role);
		} else {
			Role role = roleDAO.findById(roleId);
			//得到所有的子角色
			Set roles = role.getTblRoles();
			for (Object obj : roles) {
				Role son = (Role) obj;
				//先递归删除子角色
				deleteRole(son.getId(), true);
			}
			//最后删除自己
			roleDAO.delete(role);
		}
	}
	
	/**
	 * 根据功能节点编号查找所有的权限
	 * @param funId
	 * @return
	 */
	public List findPowersByFunId(int funId) {
		return powerDAO.findByFunId(funId);
	}
	
	/**
	 * 删除权限,已经对此权限的引用关系
	 * @param powerId
	 */
	public void deletePower(int powerId) {
		
		Power power = powerDAO.findById(powerId);
		//解除"权限~角色"关系
		for (Object obj : power.getTblRolePowers()) {
			((RolePower) obj).setTblPower(null);
		}
		power.getTblRolePowers().clear();
		
		//解除"权限~用户"关系
		for (Object obj : power.getTblUserPowers()) {
			((UserPower)obj).setTblPower(null);
		}
		power.getTblUserPowers().clear();
		
		powerDAO.delete(power);
	}
	
	public void savePower(Power power) {

		powerDAO.save(power);
	}
}

⌨️ 快捷键说明

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