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

📄 roleaction.java

📁 基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰富
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		String forward = "roleMain";
		String objId = request.getParameter("objId");
		logger.debug("getObjToPage  objId=  " + objId);
		int roleId = 0;
		if (objId != null && !objId.equals("")) {
			roleId = Integer.parseInt(objId);
		}
		try {
			Role role = roleMgr.findById(roleId);
			if (role == null) {
				role = new Role();
			}
			// 根据角色ID获取角色权限对象集合
			List<RoleRights> roleRights = roleMgr.getRightsByRoleId(roleId);
			logger.debug("roleRights.size=  " + roleRights.size());
			// hrw 2008-12-24 modify
			Map<String, WebRightsView> webRightsViews = rightsMgr
					.getWebRightsView(roleRights, Constants.ROLE_FALG,
							Constants.JSPRIGHTSCONTROL_NO);
			request.setAttribute("webRightsViews", webRightsViews);
			logger.debug("webRightsViews : " + webRightsViews.size());
			request.setAttribute("positionRights", roleRights);
			// modify end

			// request.setAttribute("roleRights", roleRights);
			request.setAttribute("role", role);

		} catch (Exception e) {
			e.printStackTrace();
		}
		return mapping.findForward(forward);
	}

	/**
	 * 获取权限到数据范围授权页面
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward [ /admin/authorization/deptTree.jsp ]
	 */
	// public ActionForward getRightsToPage(ActionMapping mapping,
	// ActionForm form, HttpServletRequest request,
	// HttpServletResponse response) {
	// String forward = "deptTree";
	// String roId = request.getParameter("roleId");// 角色ID
	// String riId = request.getParameter("rightsId");// 权限ID
	// int rightsId = 0;
	// int roleId = 0;
	// if (roId != null && !roId.equals("")) {
	// roleId = Integer.parseInt(roId);
	// }
	// if (riId != null && !riId.equals("")) {
	// rightsId = Integer.parseInt(riId);
	// }
	//
	// try {
	// // 根据权限ID获取权限对象
	// Rights rights = rightsMgr.getRightsDAO().findById(rightsId);
	// // 根据角色ID获取角色对象
	// Role role = roleMgr.findById(roleId);
	// logger.debug("角色ID " + roleId);
	// if (rights == null) {
	// rights = new Rights();
	// }
	// if (role == null) {
	// role = new Role();
	// }
	// // 根据角色ID和权限ID获取角色权限数据范围
	// List<RoleRightArea> roleRightsArea = roleMgr
	// .getDataAreaByRightIdRoleId(rightsId, roleId);
	// logger.debug("roleRightsArea.size()= " + roleRightsArea.size());
	// request.setAttribute("roleRightsArea", roleRightsArea);
	// request.setAttribute("rights", rights);
	// request.setAttribute("role", role);
	// } catch (SystemException e) {
	// e.printStackTrace();
	// request.setAttribute("info", e.getMessage());
	// }
	// return mapping.findForward(forward);
	// }
	public ActionForward getRightsToPage(ActionMapping mapping,
			ActionForm form, HttpServletRequest request,
			HttpServletResponse response) {
		// 定义转向页面变量
		String forward = "deptTree";
		// 获取页面传递参数
		String pId = request.getParameter("roleId");// 岗位ID
		String rId = request.getParameter("rightsId");// 权限ID
		int rightsId = 0;
		int roleId = 0;
		if (pId != null && !pId.equals("")) {
			roleId = Integer.parseInt(pId);
		}
		if (rId != null && !rId.equals("")) {
			rightsId = Integer.parseInt(rId);
		}
		// 2008-12-18 hrw add
		String dataArea = request.getParameter("dataArea");
		logger.debug("dataArea : " + dataArea);
		if (dataArea == null) {
			dataArea = "";
		}
		logger.debug("dataArea : " + dataArea);
		// end add

		try {
			// 根据ID获取Rights实体对象
			Rights rights = rightsMgr.getRightsDAO().findById(rightsId);
			// 根据ID获取role实体对象
			Role role = roleMgr.findById(roleId);
			logger.debug("角色ID " + roleId);
			if (rights == null) {
				rights = new Rights();
			}
			if (role == null) {
				role = new Role();
			}
			// 获取权限已有数据范围
			// hrw 2008-12-16 modify 如果数据范围在页面有重新选过,不再从数据库取。
			List<RoleRightArea> roleRightsArea = new ArrayList<RoleRightArea>();
			if (!"".equals(dataArea) && dataArea != null) {
				String[] dataAreas = dataArea.split(",");
				logger.debug("dataAreas : " + dataAreas.length);
				roleRightsArea = authorizationMgr
						.conversionRoleRightsArea(dataAreas);
			} else {
				roleRightsArea = roleMgr.getDataAreaByRightIdRoleId(rightsId,
						roleId);
			}
			// end modify
			logger.debug("岗角色权限数据范围长度  " + roleRightsArea.size());
			// 2008-12-16 hrw modify
			// request.setAttribute("positionRightsArea", positionRightsArea);
			String prJavascriptStr = SetupTreeView.getRoleSetupDeptTreeView("",
					1, roleRightsArea);
			request.setAttribute("prJavascriptStr", prJavascriptStr);
			// modify end
			request.setAttribute("rights", rights);
			request.setAttribute("role", role);
		} catch (SystemException e) {
			logger.error(e.getMessage());
			request.setAttribute("info", e.getMessage());
		}
		return mapping.findForward(forward);
	}

	/**
	 * 角色、权限、数据范围授权
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward [ /admin/authorization/main.jsp ]
	 * @throws IOException
	 */
	public ActionForward authorization(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException {
		boolean isSuccessfull = true;
		String objId = request.getParameter("objId");
		String useScheme = request.getParameter("useScheme");// 是否数据范围全局授权
		String[] rightIds = request.getParameterValues("right");// 极限ID集合
		logger.debug("授权对象ID: " + objId);
		logger.debug("权限ID集合: " + rightIds);

		// hrw 2008-12-12 对以下逻辑进行封装,封装在AuthorizationMgr里
		authorizationMgr.authorizationRole(objId, useScheme, rightIds, request);

		// int roleId = 0;
		// if (objId != null && !objId.equals("")) {
		// roleId = Integer.parseInt(objId);
		// }
		// Role r = roleMgr.findById(roleId);
		// if (r != null) {
		// try {
		// // 根据授权角色对象集合获取岗位权限对象集合
		// List<RoleRights> rr = roleMgr.findByRole(roleId);
		// logger.debug("角色权限对象集合的大小是: " + rr.size());
		// // 删除角色权限数据范围表信息
		// roleMgr.deleteRoleRightsAreaByRoleRights(rr);
		// // 删除角色权限表信息
		// roleMgr.deleteRoleRightsByRoleRights(rr);
		// } catch (NumberFormatException e) {
		// e.printStackTrace();
		// isSuccessfull = false;
		// } catch (Exception e1) {
		// e1.printStackTrace();
		// isSuccessfull = false;
		// }
		// for (int i = 0; i < rightIds.length; i++) {
		// String rid = rightIds[i];
		// int rightId = Integer.parseInt(rid);
		// logger.debug("权限ID: " + rid);
		//
		// String dataAreaIds = "";// 数据范围对象
		// if (useScheme != null && useScheme.equals("1")) {
		// logger.debug("使用方案授权 ");
		// String scheme = request.getParameter("scheme");
		// int id = 0;
		// if (scheme != null && !scheme.equals("")) {
		// id = Integer.parseInt(scheme);
		// dataAreaIds = dataAreaSchemeMgr.findTreeviewIdsById(id);
		// }
		// } else {
		// logger.debug("闁劖顒為幒鍫熸綀 ");
		// /*
		// * 在rightTree.js里,每个树节点都挂一下隐藏域,隐藏域属性ID,name均为 节点ID + "_area"
		// * 字符串, 隐藏域存储数据范围页面返回的部门节点ID集合组成的字符串
		// */
		// dataAreaIds = request.getParameter(rid + "_area");// 数据范围对象
		// }
		//
		// logger.debug("dataAreaIds: " + dataAreaIds);
		// roleMgr.saveThreeObjRelation(roleId, rightId, dataAreaIds);
		//
		// }
		// if (isSuccessfull) {// 授权成功
		// // 获取当前用户信息
		// User user = (User) request.getSession().getAttribute(
		// Constants.SESSION_USER);
		// // 获取全局会话
		// ServletContext application = request.getSession()
		// .getServletContext();
		// // 获取用户信息
		// Map userInfo = (Map) application
		// .getAttribute(SystemConstant.APPLICATION_USER_INFO);
		// if (userInfo != null) {
		// logger.debug("userInfo: " + userInfo + " userInfo.size: "
		// + userInfo.size());
		// // 获取该角色所有权限
		// List<Rights> rights = roleMgr.getAllRightsByRoleId(roleId);
		//
		// // 遍历存放用户session的Map对象
		// for (Object o : userInfo.keySet()) {
		// Integer userId = (Integer) o;
		// logger.debug("key: " + userId);
		//
		// // 不是本人的ID(管理员)
		// if (!userId.equals(user.getId())) {
		// // 获取Session
		// HttpSession session = (HttpSession) userInfo.get(o);
		// logger.debug("session: " + session);
		// User u = (User) session
		// .getAttribute(Constants.SESSION_USER);
		// // 如果当前获取的用户是属于该角色,就修改此用户Session
		// List<UserRole> ur = roleMgr.findByUserId(u.getId());
		// // 遍历存放用户角色对象
		// for (int j = 0; j < ur.size(); j++) {
		// if (ur.get(j).getRoleId().equals(roleId)) {
		// // 设入用户权限是否被修改的值
		// session
		// .setAttribute(
		// SystemConstant.SESSION_RIGHTS_IS_UPDATED,
		// true);
		// // 设入角色所拥有的权限集合
		// session.setAttribute(
		// SystemConstant.SESSION_RIGHTS,
		// rights);
		// }
		// }
		// }
		// }
		//
		// }
		//
		// }
		return getObjToPage(mapping, form, request, response);
		// } else {
		// response.setCharacterEncoding("utf-8");
		// PrintWriter out = response.getWriter();
		// out.print("<script>");
		// out.print("alert('授权角色不存在!');");
		// out.print("location.href='" + request.getContextPath()
		// + "/role.do?dispatch=getObjToPage'");
		// out.print("</script>");
		// return null;
		// }
	}

	/**
	 * 获取用户到设置角色页面
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws ApplicationException
	 */
	@SuppressWarnings("unchecked")
	public ActionForward toSetRolePage(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws ApplicationException {
		// 2008-12-26 hrw modify
		// 设置角色改:点设置角色后,转到设置角色页面,该页面不列出要设置用户的用户列表。在页面多选的javascript代码已改。
		// String iValue = request.getParameter("iValue");
		// String id = request.getParameter("id");
		// int treeViewId = 0;
		// if (id != null && !id.equals("")) {
		// treeViewId = Integer.parseInt(id);
		// }
		// Treeview treeview = treeViewMgr.findById(treeViewId);
		// request.setAttribute("treeview", treeview);
		RoleForm roleForm = (RoleForm) form;
		List<User> users = new ArrayList();
		String userIds = roleForm.getUserIds();
		logger.debug("userIds : " + userIds);
		String[] userIdArray = userIds.split(",");
		List userIdList = new ArrayList();
		for (int i = 0; i < userIdArray.length; i++) {
			if (userIdArray[i] != null && !"".equals(userIdArray[i])) {
				userIdList.add(userIdArray[i]);
			}
		}
		// 取要设置的所有用户。
		users = utilDao.findByIds(DataBaseTableName.User, "id", userIdList);
		// if (StringTool.isNotBlank(iValue)) {
		// int length = Integer.parseInt(iValue);
		// try {
		// for (int i = 1; i <= length; i++) {
		// String check = request.getParameter("check" + i);
		// if (check != null && check.equals("on")) {
		// String userId = request.getParameter("userId" + i);
		// userIds += userId + ",";
		// User user = treeViewMgr.getUserById(Integer
		// .parseInt(userId));
		// if (user != null) {
		// users.add(user);
		// }
		// } else {
		// continue;
		// }
		// }
		// request.setAttribute("users", users);
		// request.setAttribute("userSize", users.size());
		//
		// } catch (Exception e) {
		// e.printStackTrace();
		// throw new ApplicationException("");
		// }
		// } else {
		// request.setAttribute("message", "");
		// }
		// end modify

		List<Role> roles = roleMgr.findAll();
		logger.debug("roles : " + roles.size());
		List<UserRole> userRole = new ArrayList();
		for (int i = 0; i < users.size(); i++) {
			List<UserRole> ur = roleMgr.findByUserId(users.get(i).getId());
			userRole.addAll(ur);
		}
		List<RoleVo> rvs = new ArrayList();
		for (int i = 0; i < roles.size(); i++) {
			RoleVo rv = new RoleVo();
			rv.setId(roles.get(i).getId());
			rv.setRoleName(roles.get(i).getRoleName());
			boolean flag = false;
			for (int j = 0; j < userRole.size(); j++) {
				if (userRole.get(j).getRoleId().equals(roles.get(i).getId())) {
					flag = true;
					break;
				}
			}
			if (flag) {
				rv.setIsChecked("checked");
			} else {
				rv.setIsChecked("");
			}
			rvs.add(rv);
		}
		logger.debug("roleVOs : " + rvs.size());
		request.setAttribute("roles", rvs);
		request.setAttribute("userIds", userIds);
		// 2009-01-15 add
		logger.debug("nodeId : " + request.getParameter("nodeId"));
		request.setAttribute("nodeId", request.getParameter("nodeId"));
		// end add
		return mapping.findForward("setRole");
	}

	@SuppressWarnings("unchecked")
	public ActionForward searchRole(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		String forward = "roleList";
		RoleForm roleForm = (RoleForm) form;
		String roleName = roleForm.getRoleName();
		logger.debug("roleName : " + roleName);
		List<Role> roles = utilDao.findByField(DataBaseTableName.Role,
				"roleName", "like", roleName);
		// Role role = roleMgr.findById(roleId);
		if (roles != null && roles.size() > 0) {
			String currentPage = request.getParameter("currentPage");
			XPage xpage = new XPage(request.getContextPath()
					+ "/role.do?dispatch=searchRole&roleName=" + roleName,
					roles.size(), 1, 10, roles);
			if (currentPage != null && !currentPage.equals("")) {
				xpage.setCurrentItems(Integer.parseInt(currentPage));
			} else {
				xpage.setCurrentItems(1);
			}
			xpage.setPageBar();
			request.setAttribute("xpage", xpage);

		}
		return mapping.findForward(forward);
	}

	@SuppressWarnings("unchecked")
	public ActionForward setRole(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		RoleForm roleForm = (RoleForm) form;
		String userIds = roleForm.getUserIds();
		logger.debug("userIds : " + userIds);
		String[] userIdArray = userIds.split(",");
		List userIdList = new ArrayList();
		for (int i = 0; i < userIdArray.length; i++) {
			if (userIdArray[i] != null && !"".equals(userIdArray[i])) {
				userIdList.add(userIdArray[i]);
			}
		}

		if (request.getParameterValues("roles") != null) {
			String[] roles = request.getParameterValues("roles");
			roleMgr.setRole(roles, userIdList);

			// 2009-01-21 add
			Integer[] userId = new Integer[userIdList.size()];
			for (int i = 0; i < roles.length; i++) {
				userId[i] = Integer.parseInt(userIdList.get(i).toString());
			}
			
			rightsSessionMgr.reJspRightsControl(request, null, userId, Constants.RE_JSPRIGHTS_SESSION_USER);
		}
		// end add

		request.setAttribute("nodeId", request.getParameter("nodeId"));
		return toSetRolePage(mapping, form, request, response);
	}
}

⌨️ 快捷键说明

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