?? rightssessionmgrimpl.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 + -