📄 userproxy.java
字号:
package com.ntsky.bbs.service;
import org.apache.log4j.Logger ;
import java.util.*;
import com.ntsky.bbs.service.Proxy;
import com.ntsky.xml.bbs.XMLCreator;
import com.ntsky.xml.bbs.*;
import com.ntsky.bbs.service.Roles;
/**
* <p>Title: Ntsky OpenSource BBS</p>
* <p>Description: 访问页面的实例对象</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: 天网文化发展有限公司</p>
* @author 姚君林
* @version 1.0
*/
public class UserProxy extends Proxy{
private final static Logger logger = Logger.getLogger(UserProxy.class);
private static RolesXML rolesXML = XMLCreator.getInstance().getRolesXML();
/**
* 页面查看
*/
public boolean isViewPage(){
return false;
}
/**
* 动作权限
*/
public boolean isAction(String usrRoles,int point){
return isRightsPoint(usrRoles,point);
}
/**
* 角色数组
*/
private List getTempRole(String string){
// 遍历整个RoleMap (得到角色id,由角色ID ----> 权限点数组)
List list = getRolesMap(string);
// 中间数组,存放取得的权限点数组
List tempList = new ArrayList();
Iterator rs = list.iterator();
while (rs.hasNext()) {
String key = (String) rs.next();
//这里将由key获得整个权限点的字符串
Roles roles = rolesXML.getSelRolesXML(Integer.parseInt(key));
Map map = getPrivilege(roles.getRoleEnuStr());
//将map添加到整个中间数组
tempList.add(map);
}
return tempList;
}
/**
* 循环中间的list,看是否包含权限点
*/
private boolean isRightsPoint(String usrRoles ,int point){
Iterator rs = getTempRole(usrRoles).iterator();
while (rs.hasNext()) {
Map map = (Map)rs.next();
if (map.containsValue(String.valueOf(point))) {
return true;
}
}
return false;
}
/**
* 角色数组
* @param string String
* @return List
*/
private List getRolesMap(String string) {
StringTokenizer stringTokenizer = new StringTokenizer(string, ",");
List list = new ArrayList();
while (stringTokenizer.hasMoreTokens()) {
String str = stringTokenizer.nextToken();
list.add(str);
}
return list;
}
/**
* 取得权限数组
* @param string String
* @return Map
*/
private Map getPrivilege(String string) {
StringTokenizer stringTokenizer = new StringTokenizer(string, ",");
Map hasMap = new HashMap();
while (stringTokenizer.hasMoreTokens()) {
String str = stringTokenizer.nextToken();
hasMap.put(str, str);
}
return hasMap;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -