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

📄 rightssessionmgrimpl.java

📁 基于Sturts+Spring+Hibernate的一个高级销售管理系统。内容丰富
💻 JAVA
字号:
package com.yuanchung.sales.service.admin.session.impl;

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

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;

import com.yuanchung.sales.constants.SystemConstant;
import com.yuanchung.sales.model.admin.Rights;
import com.yuanchung.sales.model.admin.role.UserRole;
import com.yuanchung.sales.model.user.User;
import com.yuanchung.sales.service.admin.rights.RightsMgr;
import com.yuanchung.sales.service.admin.role.RoleMgr;
import com.yuanchung.sales.service.admin.session.RightsSessionMgr;
import com.yuanchung.sales.util.Constants;
import com.yuanchung.sales.vo.right.WebRightsView;

public class RightsSessionMgrImpl implements RightsSessionMgr {
	static Logger logger = Logger.getLogger(RightsSessionMgrImpl.class);
	private RoleMgr roleMgr;
	private RightsMgr rightsMgr;

	public RightsMgr getRightsMgr() {
		return rightsMgr;
	}

	public void setRightsMgr(RightsMgr rightsMgr) {
		this.rightsMgr = rightsMgr;
	}

	public RoleMgr getRoleMgr() {
		return roleMgr;
	}

	public void setRoleMgr(RoleMgr roleMgr) {
		this.roleMgr = roleMgr;
	}

	public void reJspRightsControl(HttpServletRequest request,
			Integer[] roleIds, Integer[] userIds, int flag) {
		// 获取当前用户信息
		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());
			// 获取该角色所有权限 2009-01-21 改暂不取。
			// 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());
				if (flag == Constants.RE_JSPRIGHTS_SESSION_ROLE) {
					// 遍历存放用户角色对象
					for (int j = 0; j < ur.size(); j++) {
						boolean breakFlag = false;
						for (int i = 0; i < roleIds.length; i++) {
							Integer roleId = roleIds[i];
							if (ur.get(j).getRoleId().equals(roleId)) {
								// 设入用户权限是否被修改的值
								session
										.setAttribute(
												SystemConstant.SESSION_RIGHTS_IS_UPDATED,
												true);
								// 设入角色所拥有的权限集合 2009-01-21 改
								// session.setAttribute(
								// SystemConstant.SESSION_RIGHTS, rights);
								breakFlag = true;
								break;
								// end modify
							}
						}
						if (breakFlag) {
							break;
						}
					}
				}
				if(flag == Constants.RE_JSPRIGHTS_SESSION_USER){
					for(int i = 0 ; i < userIds.length ; i ++){
						if(u.getId().equals(userIds[i])){
							// 设入用户权限是否被修改的值
							session
									.setAttribute(
											SystemConstant.SESSION_RIGHTS_IS_UPDATED,
											true);
							break;
						}
					}
				}
				// 2009-01-21 有改动重新装载权限。
				if ((Boolean) session
						.getAttribute(SystemConstant.SESSION_RIGHTS_IS_UPDATED)) {
					logger.debug("重新set......");
					List<Rights> urRights = new ArrayList<Rights>();
					List<UserRole> ur1 = roleMgr.findByUserId(user.getId());
					for (int i = 0; i < ur1.size(); i++) {
						List<Rights> r = roleMgr.getAllRightsByRoleId(ur.get(i)
								.getRoleId());
						urRights.addAll(r);
						// logger.debug("r : " + r.get(i).getRightsName());
					}

					Map<String, WebRightsView> jspRightsControl = rightsMgr
							.getWebRightsView(urRights, Constants.RIGHTS_FALG,
									Constants.JSPRIGHTSCONTROL_YES);
					session.setAttribute(SystemConstant.JSP_RIGHTS_CONTROL,
							jspRightsControl);
				}
				// end
				// }
			}

		}

	}

}

⌨️ 快捷键说明

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