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

📄 actionutils.java

📁 java论坛
💻 JAVA
字号:
package com.laoer.bbscs.web.action;

import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.*;
import com.laoer.bbscs.service.config.SysConfig;
import com.laoer.bbscs.comm.BBSCSUtil;
import java.net.MalformedURLException;
import com.laoer.bbscs.web.form.LoginForm;
import com.laoer.bbscs.bean.UserInfo;
import java.util.Map;
import com.laoer.bbscs.web.servlet.UserSession;
import com.laoer.bbscs.bean.Permission;
import java.util.Iterator;
import java.util.Set;
import com.laoer.bbscs.comm.Constant;
import com.laoer.bbscs.bean.UserOnline;

/**
 * <p>Title: Tianyi BBS</p>
 *
 * <p>Description: BBSCS</p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: Laoer.com</p>
 *
 * @author Gong Tianyi
 * @version 7.0
 */
public class ActionUtils {

  public ActionUtils() {
  }

  public synchronized static void addErrors(HttpServletRequest request, ActionMessages errors) {
    if (errors == null) {
      //	bad programmer! *slap*
      return;
    }

    // get any existing errors from the request, or make a new one
    ActionMessages requestErrors = (ActionMessages) request.getAttribute(Globals.ERROR_KEY);
    if (requestErrors == null) {
      requestErrors = new ActionMessages();
    }
    // add incoming errors
    requestErrors.add(errors);

    // if still empty, just wipe it out from the request
    if (requestErrors.isEmpty()) {
      request.removeAttribute(Globals.ERROR_KEY);
      return;
    }

    // Save the errors
    request.setAttribute(Globals.ERROR_KEY, requestErrors);
  }

  public static ActionForward getLoginForward(ActionMapping mapping, HttpServletRequest request,
                                              SysConfig sysConfig, String loginType) {
    String tourl = "";
    if (loginType.equalsIgnoreCase("index")) {
      try {
        tourl = BBSCSUtil.absoluteActionURL(request, "/main").toString();
      }
      catch (MalformedURLException ex) {
        tourl = "main.bbscs";
      }

    }
    if (loginType.equalsIgnoreCase("admin")) {
      try {
        tourl = BBSCSUtil.absoluteActionURL(request, "/adminMain").toString();
      }
      catch (MalformedURLException ex) {
        tourl = "adminMain.bbscs";
      }
    }

    if (sysConfig.isUsePass()) {
      request.setAttribute("actionUrl", sysConfig.getPassUrl());
      request.setAttribute("tourl", tourl);
      return mapping.findForward("passLogin");
    }
    else {
      LoginForm loginForm = new LoginForm();
      loginForm.setAction("login");
      loginForm.setTourl(tourl);
      request.setAttribute("loginForm", loginForm);
      return mapping.findForward("login");
    }
  }

  public static void createUserSession(HttpServletRequest request, UserInfo ui, Map[] permissionMap,
                                       UserOnline uo) {
    HttpSession session = request.getSession();
    UserSession us = new UserSession();
    us.setId(ui.getId());
    us.setUserName(ui.getUserName());
    us.setNickName(ui.getNickName());
    us.setGroupID(ui.getGroupID());
    us.setValidateCode(uo.getValidateCode());
    us.setLastActiveTime(System.currentTimeMillis());
    us.setEmail(ui.getEmail());

    Set pset = permissionMap[0].entrySet();
    Iterator it = pset.iterator();
    while (it.hasNext()) {
      Map.Entry p = (Map.Entry) it.next();
      Permission permission = (Permission) p.getValue();
      String[] actions = permission.getAction().split(",");
      for (int i = 0; i < actions.length; i++) {
        //System.out.println(p.getKey());
        String[] resources = ( (String) p.getKey()).split(",");
        us.getUserPermission().put(BBSCSUtil.getActionMappingURL(resources[0], request) +
                                   "?action=" + actions[i], p.getValue());
      }

      //us.getUserPermission().put(BBSCSUtil.getActionMappingURL( (String) p.getKey(), request) +
      //                           "?action=" + permission.getAction(), p.getValue());
    }
    us.setSpecialPermission(permissionMap[1]);
    String[] signDetail = new String[3];
    signDetail[0] = ui.getSignDetail0();
    signDetail[1] = ui.getSignDetail1();
    signDetail[2] = ui.getSignDetail2();
    /*
         System.out.println("ActionUtils createUserSession -> \n signDetail[0]:" + signDetail[0] +
     "\n signDetail[1]:" + signDetail[1] + "\n signDetail[2]:" + signDetail[2]);*/
    us.setSignDetail(signDetail);
    session.setAttribute(Constant.USER_SESSION_KEY, us);
  }

  public static void createGuestSession(HttpServletRequest request, Map[] permissionMap,
                                        UserOnline uo) {
    HttpSession session = request.getSession();
    UserSession us = new UserSession();
    us.setId(uo.getUserID());
    us.setUserName(uo.getUserName());
    us.setNickName(uo.getNickName());
    us.setGroupID(Constant.USER_GROUP_GUEST);
    us.setLastActiveTime(System.currentTimeMillis());

    Set pset = permissionMap[0].entrySet();
    Iterator it = pset.iterator();
    while (it.hasNext()) {
      Map.Entry p = (Map.Entry) it.next();
      Permission permission = (Permission) p.getValue();
      String[] actions = permission.getAction().split(",");
      for (int i = 0; i < actions.length; i++) {
        System.out.println(p.getKey());
        String[] resources = ( (String) p.getKey()).split(",");
        us.getUserPermission().put(BBSCSUtil.getActionMappingURL(resources[0], request) +
                                   "?action=" + actions[i], p.getValue());
      }
      //us.getUserPermission().put(BBSCSUtil.getActionMappingURL( (String) p.getKey(), request) +
      //                           "?action=" + permission.getAction(), p.getValue());
    }
    us.setSpecialPermission(permissionMap[1]);
    session.setAttribute(Constant.USER_SESSION_KEY, us);
  }

  public static void reloadUserPermission(HttpServletRequest request, Map[] permissionMap) {
    HttpSession session = request.getSession();
    UserSession us = (UserSession) session.getAttribute(Constant.USER_SESSION_KEY);
    if (us != null) {
      us.getUserPermission().clear();
      us.getSpecialPermission().clear();
      Set pset = permissionMap[0].entrySet();
      Iterator it = pset.iterator();
      while (it.hasNext()) {
        Map.Entry p = (Map.Entry) it.next();
        Permission permission = (Permission) p.getValue();
        String[] actions = permission.getAction().split(",");
        for (int i = 0; i < actions.length; i++) {
          String[] resources = ( (String) p.getKey()).split(",");
          us.getUserPermission().put(BBSCSUtil.getActionMappingURL(resources[0], request) +
                                     "?action=" + actions[i], p.getValue());
        }
        //us.getUserPermission().put(BBSCSUtil.getActionMappingURL( (String) p.getKey(), request) +
        //                           "?action=" + permission.getAction(), p.getValue());
      }
      us.setSpecialPermission(permissionMap[1]);
      session.setAttribute(Constant.USER_SESSION_KEY, us);
    }
  }

  public static UserSession reloadUserPermission(HttpServletRequest request, UserSession us,
                                                 Map[] permissionMap) {
    HttpSession session = request.getSession();
    if (us != null) {
      us.getUserPermission().clear();
      us.getSpecialPermission().clear();
      Set pset = permissionMap[0].entrySet();
      Iterator it = pset.iterator();
      while (it.hasNext()) {
        Map.Entry p = (Map.Entry) it.next();
        Permission permission = (Permission) p.getValue();
        String[] actions = permission.getAction().split(",");
        for (int i = 0; i < actions.length; i++) {
          String[] resources = ( (String) p.getKey()).split(",");
          us.getUserPermission().put(BBSCSUtil.getActionMappingURL(resources[0], request) +
                                     "?action=" + actions[i], p.getValue());
        }
        //us.getUserPermission().put(BBSCSUtil.getActionMappingURL( (String) p.getKey(), request) +
        //                           "?action=" + permission.getAction(), p.getValue());
      }
      us.setSpecialPermission(permissionMap[1]);
      session.setAttribute(Constant.USER_SESSION_KEY, us);
    }
    return us;
  }

}

⌨️ 快捷键说明

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