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.Forum; 19 import org.nemesis.forum.ForumFactory; 20 import org.nemesis.forum.ProfileManager; 21 import org.nemesis.forum.util.SecurityTools; 22 import org.nemesis.forum.webapp.admin.Config; 23 import org.nemesis.forum.webapp.admin.bean.ForumBean; 24 25 public class ListForumAction extends BaseAction { 26 27 static protected Log log = LogFactory.getLog(ListForumAction.class); 28 29 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { 30 31 checkUser(request); 33 checkPermission(request, OperationConstants.LIST_FORUM); 35 36 ActionMessages messages = new ActionMessages(); 37 38 try { 39 int maxIndexPages = Config.forumListPagerMaxIndexPages; 40 int maxPageItems = Config.forumListPagerMaxPageItems; 41 request.setAttribute("maxIndexPages", new Integer (maxIndexPages)); 42 request.setAttribute("maxPageItems", new Integer (maxPageItems)); 43 44 int start = 0; 45 try { 46 start = Integer.parseInt(request.getParameter("pager.offset")); 47 } catch (Exception e) { 48 49 } 50 51 List v = new Vector (); 52 53 ForumFactory forumFactory = ForumFactory.getInstance(getAuthToken(request)); 54 ProfileManager manager = forumFactory.getProfileManager(); 55 56 Iterator forumIterator = null; 57 if (request.getParameter("query") != null) { 58 59 String query = request.getParameter("query"); 61 forumIterator =forumFactory.forumsModeration(); 62 List tempListe = new ArrayList (); 63 Forum forumTemp = null; 64 int c = 0; 65 while (forumIterator.hasNext()) { 66 forumTemp = (Forum) forumIterator.next(); 67 if (forumTemp.getName().toLowerCase().indexOf(query.toLowerCase()) > -1 68 || forumTemp.getDescription().toLowerCase().indexOf(query.toLowerCase()) > -1 69 ) { 70 if(c >= start && c<(start+maxPageItems)){ 72 tempListe.add(forumTemp); 73 } 74 c++; 75 76 } 77 } 78 forumIterator = tempListe.iterator(); 79 request.setAttribute("nbItems", new Integer (c)); 80 request.setAttribute("query", query); 81 } else { 82 forumIterator = forumFactory.forumsModeration(); 83 List tempListe = new ArrayList (); 84 Forum forumTemp = null; 85 int c = 0; 86 while (forumIterator.hasNext()) { 87 forumTemp = (Forum) forumIterator.next(); 88 if(c >= start && c<(start+maxPageItems)){ 90 tempListe.add(forumTemp); 91 } 92 c++; 93 } 94 forumIterator = tempListe.iterator(); 95 request.setAttribute("nbItems", new Integer (c)); 96 } 97 String temp = null; 99 ForumBean ub = null; 100 Forum forum = null; 101 while (forumIterator.hasNext()) { 102 forum = (Forum) forumIterator.next(); 103 ub = new ForumBean(); 104 ub.setId(forum.getID()); 105 ub.setName(forum.getName()); 106 ub.setDescription(forum.getDescription()); 107 ub.setMessages(forum.getMessageCount()); 108 ub.setThreads(forum.getThreadCount()); 109 ub.setModerationType(forum.getModerationType()); 110 111 ub.setAdmin(SecurityTools.isSystemAdmin(getAuthToken(request)) || SecurityTools.isForumAdmin(getAuthToken(request),forum)); 112 113 118 119 120 v.add(ub); 121 } 122 123 request.setAttribute("forums", v); 124 request.setAttribute("isSystemAdmin",new Boolean (SecurityTools.isSystemAdmin(getAuthToken(request)))); 125 request.setAttribute("isForumAdmin",new Boolean (SecurityTools.isForumAdmin(getAuthToken(request)))); 126 127 } catch (Exception e) { 128 String eid = this.getClass().getName() + "_" + System.currentTimeMillis(); 129 log.error("eid:" + eid + "\nsessionID" + request.getSession().getId(), e); 130 messages.add("general", new ActionMessage("error.general", "error id:" + eid)); 131 } 132 133 if (!messages.isEmpty()) { 134 saveMessages(request, messages); 135 } 136 137 return mapping.findForward("view"); 138 } 139 140 } | Popular Tags |