📄 loginlogicimpl.java
字号:
package com.isoftstone.isscrmweb.web.logic.system;
import java.io.File;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.pontifex.util.StringUtil;
import org.pontifex.util.security.MD5;
import org.pontifex.web.mapping.LoginUser;
import com.isoftstone.isscrmweb.web.dao.frame.ActionDao;
import com.isoftstone.isscrmweb.web.dao.frame.ModuleDao;
import com.isoftstone.isscrmweb.web.dao.frame.RoleDao;
import com.isoftstone.isscrmweb.web.dao.system.UserCodeDao;
import com.isoftstone.isscrmweb.web.mapping.Action;
import com.isoftstone.isscrmweb.web.mapping.Menuinfo;
import com.isoftstone.isscrmweb.web.mapping.Roleinfo;
import com.isoftstone.isscrmweb.web.mapping.Userinfo;
/**
* Created by IntelliJ IDEA.
* User: Songzou
* Date: 2007-4-8
* Time: 11:33:56
*
* 登陆逻辑主要实现类
*/
public class LoginLogicImpl implements LoginLogic {
private UserCodeDao userCodeDao ;
private RoleDao roleDao;
private ModuleDao moduleDao;
private ActionDao actionDao ;
public void setActionDao(ActionDao actionDao){
this.actionDao = actionDao ;
}
public void setUserCodeDao(UserCodeDao userCodeDao) {
this.userCodeDao = userCodeDao;
}
public void setRoleDao(RoleDao roleDao) {
this.roleDao = roleDao;
}
public void setModuleDao(ModuleDao moduleDao){
this.moduleDao = moduleDao;
}
/**
* 管理员登陆 int 1:登录成功, 2:密码错误, 3:未找到该用户名, 4:未找到menu.xml配置文件
*
* @throws DocumentException
*/
public int checkAdmin(LoginUser loginUser, Map<String, Object> map)
throws DocumentException {
String menuXML = loginUser.getRealPath() + "\\menu.xml";
File file = new File(menuXML);
if (!file.exists())
return 4;
MD5 md5 = new MD5();
SAXReader reader = new SAXReader();
Document doc = reader.read(file);
Element root = doc.getRootElement();
String postUserCode = loginUser.getLoginUserCode();
String md5Password = md5.getMD5String(loginUser.getLoginPassword());
for (Iterator i = root.elementIterator(); i.hasNext();) {
Element element = (Element) i.next();
String xmlUserCode = element.attributeValue("usercode");
String xmlPassword = element.attributeValue("password");
String xmlUserName = element.attributeValue("username");
if (postUserCode.equals(xmlUserCode)) {
if (md5Password.equalsIgnoreCase(xmlPassword)) {
loginUser.setLoginUserName(xmlUserName);
loginUser.setLoginPassword(xmlPassword);
loginUser.setLoginUserId(postUserCode);
map.put("menuList", createAdminMenu(element));
map.put("actionSet", getAdminAction(loginUser));
return 1;
} else {
return 2;
}
}
}
return 3;
}
/**
* 生成管理员权限
*
* @param loginUser
* @return
* @throws DocumentException
*/
private Set getAdminAction(LoginUser loginUser) throws DocumentException {
String actionFile = loginUser.getRealPath() + "\\action.xml";
File file = new File(actionFile);
if (!file.exists())
return null;
SAXReader reader = new SAXReader();
Document doc = reader.read(file);
Element root = doc.getRootElement();
String postUserCode = loginUser.getLoginUserCode();
Set<String> actionSet = null;
for (Iterator i = root.elementIterator(); i.hasNext();) {
Element element = (Element) i.next();
String xmlUserCode = element.attributeValue("userCode");
if (postUserCode.equals(xmlUserCode)) {
actionSet = new HashSet<String>();
StringBuffer buffer = new StringBuffer();
for (Iterator it = element.elementIterator(); it.hasNext();) {
Element actionNode = (Element) it.next();
buffer.append(",");
buffer.append(actionNode.getText());
}
String[] action = buffer.toString().split(",");
for (int j = 0; j < action.length; j++) {
String s = action[j].trim();
if (!StringUtil.isEmpty(s)) {
actionSet.add(s);
}
}
break;
}
}
return actionSet;
}
/**
* 创建管理员菜单
*
* @param element
* @return 菜单
*/
private String createAdminMenu(final Element element) {
StringBuffer buffer = new StringBuffer();
// 遍历父菜单
int index = 1;
int subindex = 0 ; //管理员菜单子菜单的索引
for (Iterator iterator = element.elementIterator(); iterator.hasNext(); index++) {
Element fatherMenu = (Element) iterator.next();
buffer.append("mpmenu");
buffer.append(index);
buffer.append("=new mMenu('");
buffer.append(fatherMenu.attributeValue("caption"));
buffer.append("','','iframe','','','','');\n");
if (fatherMenu.elements().size() > 0) {
for (Iterator iterator1 = fatherMenu.elementIterator(); iterator1.hasNext();) {
Element itemMenu = (Element) iterator1.next();
String itemMenuName = itemMenu.getName();
if (itemMenuName.equals("menuItem")) {
if (itemMenu.elements().size() > 0) {// 有子菜单
subindex++;
buffer.append("msub");
buffer.append(subindex);
buffer.append("=new mMenuItem('");
buffer.append(itemMenu.attributeValue("caption"));
buffer.append("','','iframe',false,'','1','','','','');\n");
for (Iterator iterator2 = itemMenu.elementIterator(); iterator2
.hasNext(); ) {
Element subItemMenu = (Element) iterator2.next();
if(subItemMenu.getName().equals("menuSeperator")){
buffer.append("msub");
buffer.append(subindex);
buffer.append(".addsubItem(new mMenuItem(null,null,null,true));\n");
}else{
buffer.append("msub");
buffer.append(subindex);
buffer.append(".addsubItem(new mMenuItem('");
buffer.append(subItemMenu.attributeValue("caption"));
buffer.append("','");
String action = subItemMenu.attributeValue("action");
if(action==null||action.equals("")){
action="alert('空链接')";
}
buffer.append(StringUtil.replace(action,"'","\\'"));
if (action != null && action.indexOf("(")>0) {
buffer.append("','javascript',false,'"
+ subItemMenu.attributeValue("caption")
+ "',null,'','','',''));\n");
} else {
buffer.append("','iframe',false,'"
+ subItemMenu.attributeValue("caption")
+ "',null,'','','',''));\n");
}
}
}
buffer.append("mpmenu");
buffer.append(index);
buffer.append(".addItem(");
buffer.append("msub" + subindex);
buffer.append(");\n");
} else {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -