1 package org.nemesis.forum.webapp.admin.action; 2 3 import java.util.ArrayList ; 4 import java.util.Iterator ; 5 import java.util.List ; 6 import java.util.Vector ; 7 8 import javax.servlet.http.HttpServletRequest ; 9 import javax.servlet.http.HttpServletResponse ; 10 11 import org.apache.commons.logging.Log; 12 import org.apache.commons.logging.LogFactory; 13 import org.apache.struts.action.ActionForm; 14 import org.apache.struts.action.ActionForward; 15 import org.apache.struts.action.ActionMapping; 16 import org.apache.struts.action.ActionMessage; 17 import org.apache.struts.action.ActionMessages; 18 import org.nemesis.forum.ForumFactory; 19 import org.nemesis.forum.ProfileManager; 20 import org.nemesis.forum.User; 21 import org.nemesis.forum.webapp.admin.Config; 22 import org.nemesis.forum.webapp.admin.bean.UserBean; 23 24 public class ListUserAction extends BaseAction { 25 26 static protected Log log = LogFactory.getLog(ListUserAction.class); 27 28 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { 29 30 checkUser(request); 32 checkPermission(request, OperationConstants.LIST_USER); 34 35 ActionMessages messages = new ActionMessages(); 36 37 try { 38 int maxIndexPages = Config.userListPagerMaxIndexPages; 39 int maxPageItems = Config.userListPagerMaxPageItems; 40 request.setAttribute("maxIndexPages", new Integer (maxIndexPages)); 41 request.setAttribute("maxPageItems", new Integer (maxPageItems)); 42 43 int start = 0; 44 try { 45 start = Integer.parseInt(request.getParameter("pager.offset")); 46 } catch (Exception e) { 47 48 } 49 50 List v = new Vector (); 51 52 ForumFactory forumFactory = ForumFactory.getInstance(getAuthToken(request)); 53 ProfileManager manager = forumFactory.getProfileManager(); 54 55 Iterator userIterator = null; 56 if (request.getParameter("query") != null) { 57 58 String query = request.getParameter("query"); 60 userIterator = manager.users(); 61 List tempListe = new ArrayList (); 62 User userTemp = null; 63 int c = 0; 64 while (userIterator.hasNext()) { 65 userTemp = (User) userIterator.next(); 66 if (userTemp.getName().toLowerCase().indexOf(query.toLowerCase()) > -1 67 || userTemp.getUsername().toLowerCase().indexOf(query.toLowerCase()) > -1 68 || userTemp.getEmail().toLowerCase().indexOf(query.toLowerCase()) > -1) { 69 if(c >= start && c<(start+maxPageItems)){ 71 tempListe.add(userTemp); 72 } 73 c++; 74 75 } 76 } 77 userIterator = tempListe.iterator(); 78 request.setAttribute("nbItems", new Integer (c)); 79 request.setAttribute("query", query); 80 } else { 81 userIterator = manager.users(start, maxPageItems); 82 request.setAttribute("nbItems", new Integer (manager.getUserCount())); 83 } 84 String temp = null; 86 UserBean ub = null; 87 User user = null; 88 while (userIterator.hasNext()) { 89 user = (User) userIterator.next(); 90 ub = new UserBean(); 91 ub.setId(user.getID()); 92 ub.setName(user.getName()); 93 ub.setUserName(user.getUsername()); 94 ub.setNameVisible(user.isNameVisible()); 95 ub.setEmail(user.getEmail()); 96 ub.setEmailVisible(user.isEmailVisible()); 97 102 103 ub.setGoupCount(user.getGroupCount()); 104 ub.setGroupAdminCount(user.getGroupAdministratorCount()); 105 106 v.add(ub); 107 } 108 109 request.setAttribute("users", v); 110 111 } catch (Exception e) { 112 String eid = this.getClass().getName() + "_" + System.currentTimeMillis(); 113 log.error("eid:" + eid + "\nsessionID" + request.getSession().getId(), e); 114 messages.add("general", new ActionMessage("error.general", "error id:" + eid)); 115 } 116 117 if (!messages.isEmpty()) { 118 saveMessages(request, messages); 119 } 120 121 return mapping.findForward("view"); 122 } 123 124 } | Popular Tags |