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

📄 roleprivilegeaction.java

📁 基于jsp+sevlet的部分权限控制
💻 JAVA
字号:
/**
 * 
 */
package com.qrsx.appcam.action;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.qrsx.appcam.dao.AssetDAO;
import com.qrsx.appcam.dao.EmployeeDAO;
import com.qrsx.appcam.dao.PrivilegeDAO;
import com.qrsx.appcam.dao.RoleDAO;
import com.qrsx.appcam.dao.RolePrivilegeDAO;
import com.qrsx.appcam.model.Asset;
import com.qrsx.appcam.model.Employee;
import com.qrsx.appcam.model.Privilege;
import com.qrsx.appcam.model.Role;
import com.qrsx.appcam.model.RolePrivilege;

/**
 * 用户在角色列表页面点击编辑权限,将转到新页面,列出用户拥有的所有权限,每条权限右边有一个删除
 * 连接可以进行删除操作,还提供一个添加按钮转到新页面可以进行添加权限操作.在该页面仅显示当前
 * 编辑的角色没有的权限.通过查询privilege表中的privilegeId,与roleprivilege表中该角色拥有的权限
 * privilegeId进行比较来实现.先查出roleprivilege表中当前roleId对应的privilegeId集合,再从privilege表查询所有不
 * 在该集合中的privilege 使用select * from privilege where id not in
 * @author 张清华
 *
 */
/*对privilegeIds如下处理
AssetForm assetForm = (AssetForm)form;

//存储为form的一个属性
List addTypes = new ArrayList();
addTypes.add("自建");
addTypes.add("购入");
addTypes.add("融资租赁");
addTypes.add("捐赠");
assetForm.setAddTypes(addTypes);
*/
public class RolePrivilegeAction extends BaseLookupDispatchAction{
	
	/**
	 * 添加角色权限
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ActionForward save(
			ActionMapping mapping,
			ActionForm form,
			HttpServletRequest request,
			HttpServletResponse response)throws Exception{
		
		RolePrivilege rolePrivilege = new RolePrivilege();
		BeanUtils.copyProperties(rolePrivilege,form);
		
		
		RolePrivilegeDAO dao = new RolePrivilegeDAO();
		dao.create(rolePrivilege);
	
		saveMessage(request,"rolePrivilegeForm.added");
		
		//return mapping.findForward("success");
		
		ActionForward forward = mapping.findForward("success");
		StringBuffer path = new StringBuffer(forward.getPath());
		boolean isQuery= (path.indexOf("?")>=0);
		if (isQuery)path.append("&id="+rolePrivilege.getRoleId());
		else
			path.append("?id="+rolePrivilege.getRoleId());
		return new ActionForward(path.toString());
	}
	
	/**
	 * 删除角色权限
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ActionForward delete(
			ActionMapping mapping,
			ActionForm form,
			HttpServletRequest request,
			HttpServletResponse response) throws Exception{
		
		String roleId = request.getParameter("roleId");
		String privilegeId = request.getParameter("privilegeId");
		if( roleId!=null && roleId.trim().length()>0 ){
			RolePrivilegeDAO dao = new RolePrivilegeDAO();
			dao.delete(Integer.valueOf(roleId),Integer.valueOf(privilegeId));
			saveMessage(request,"rolePrivilegeForm.deleted");
		}
		
		//return mapping.findForward("success");
		ActionForward forward = mapping.findForward("success");
		StringBuffer path = new StringBuffer(forward.getPath());
		boolean isQuery= (path.indexOf("?")>=0);
		if (isQuery)path.append("&id="+Integer.valueOf(roleId));
		else
			path.append("?id="+Integer.valueOf(roleId));
		return new ActionForward(path.toString());
	}
	
	/**
	 * 列出当前角色的所有权限
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ActionForward list(
			ActionMapping mapping,
			ActionForm form,
			HttpServletRequest request,
			HttpServletResponse response) throws Exception{
		
		String roleId = request.getParameter("id");
		RolePrivilegeDAO dao = new RolePrivilegeDAO();
		RolePrivilege rolePrivilege = dao.list(Integer.valueOf(roleId));
		request.setAttribute("rolePrivilege", rolePrivilege);
		
		ArrayList<Privilege> list=new ArrayList<Privilege>();
		PrivilegeDAO privilegeDao=new PrivilegeDAO();
		Integer[] privileges=rolePrivilege.getPrivilegeIds();
		for(int i=0,n=privileges.length;i<n;i++){
			Privilege privilege=privilegeDao.findById(privileges[i]);
			list.add(privilege);
		}
		request.setAttribute("privileges", list);	
		
        //存放单独bean的集合
        RoleDAO roleDao = new RoleDAO();
        Role role = roleDao.findById(Integer.valueOf(roleId));
        request.setAttribute("role", role);
        
		return mapping.findForward("list");
	}
	
	/**
	 * 返回当前角色不具有的权限
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ActionForward assemble(
			ActionMapping mapping,
			ActionForm form,
			HttpServletRequest request,
			HttpServletResponse response) throws Exception{
		
		String roleId=request.getParameter("roleId");
		RolePrivilegeDAO dao = new RolePrivilegeDAO();
		List<Privilege> list=dao.assemble(Integer.valueOf(roleId));
		request.setAttribute("privileges", list);
		request.setAttribute("roleId", roleId);

		return mapping.findForward("edit");
	}
}

⌨️ 快捷键说明

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