KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > nemesis > forum > webapp > admin > action > ListUserAction


1 package org.nemesis.forum.webapp.admin.action;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import java.util.List JavaDoc;
6 import java.util.Vector JavaDoc;
7
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9 import javax.servlet.http.HttpServletResponse JavaDoc;
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 JavaDoc request, HttpServletResponse JavaDoc response) throws Exception JavaDoc {
29
30         //check logon
31
checkUser(request);
32         //check permission
33
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 JavaDoc(maxIndexPages));
41             request.setAttribute("maxPageItems", new Integer JavaDoc(maxPageItems));
42
43             int start = 0;
44             try {
45                 start = Integer.parseInt(request.getParameter("pager.offset"));
46             } catch (Exception JavaDoc e) {
47                 /*ignore*/
48             }
49
50             List JavaDoc v = new Vector JavaDoc();
51
52             ForumFactory forumFactory = ForumFactory.getInstance(getAuthToken(request));
53             ProfileManager manager = forumFactory.getProfileManager();
54
55             Iterator JavaDoc userIterator = null;
56             if (request.getParameter("query") != null) {
57
58                 //::TODO::search, not very nice
59
String JavaDoc query = request.getParameter("query");
60                 userIterator = manager.users();
61                 List JavaDoc tempListe = new ArrayList JavaDoc();
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                         //match
70
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 JavaDoc(c));
79                 request.setAttribute("query", query);
80             } else {
81                 userIterator = manager.users(start, maxPageItems);
82                 request.setAttribute("nbItems", new Integer JavaDoc(manager.getUserCount()));
83             }
84             //populate
85
String JavaDoc 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                 //not necessary
98
/*for(Enumeration enum =user.propertyNames(); enum.hasMoreElements();){
99                     temp=(String)enum.nextElement();
100                     ub.setValue(temp,user.getProperty(temp));
101                 }*/

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 JavaDoc e) {
112             String JavaDoc 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