KickJava   Java API By Example, From Geeks To Geeks.

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


1 package org.nemesis.forum.webapp.admin.action;
2
3
4 import java.util.Iterator JavaDoc;
5 import java.util.Vector JavaDoc;
6
7 import javax.servlet.http.HttpServletRequest JavaDoc;
8 import javax.servlet.http.HttpServletResponse JavaDoc;
9
10 import org.apache.commons.logging.Log;
11 import org.apache.commons.logging.LogFactory;
12 import org.apache.struts.action.ActionForm;
13 import org.apache.struts.action.ActionForward;
14 import org.apache.struts.action.ActionMapping;
15 import org.apache.struts.action.ActionMessage;
16 import org.apache.struts.action.ActionMessages;
17 import org.nemesis.forum.ForumFactory;
18 import org.nemesis.forum.Group;
19 import org.nemesis.forum.ProfileManager;
20 import org.nemesis.forum.util.SecurityTools;
21 import org.nemesis.forum.webapp.admin.Config;
22 import org.nemesis.forum.webapp.admin.bean.GroupBean;
23
24
25 public class ListGroupAction extends BaseAction {
26
27     static protected Log log =LogFactory.getLog(ListGroupAction.class);
28
29
30     public ActionForward execute(ActionMapping mapping,
31                  ActionForm form,
32                  HttpServletRequest JavaDoc request,
33                  HttpServletResponse JavaDoc response)
34     throws Exception JavaDoc {
35
36         //check logon
37
checkUser(request);
38         //check permission
39
checkPermission(request,OperationConstants.LIST_GROUP);
40         
41         ActionMessages messages = new ActionMessages();
42                 
43         try {
44                 int maxIndexPages=Config.groupListPagerMaxIndexPages;
45                 int maxPageItems=Config.groupListPagerMaxPageItems;
46                 request.setAttribute("maxIndexPages",new Integer JavaDoc(maxIndexPages));
47                 request.setAttribute("maxPageItems",new Integer JavaDoc(maxPageItems));
48                 
49                 int start=0;
50                 try {
51                     start = Integer.parseInt(request.getParameter("pager.offset"));
52                 } catch (Exception JavaDoc e) {
53                     /*ignore*/
54                 }
55                 
56                 Vector JavaDoc v=new Vector JavaDoc();
57                 
58                 ForumFactory forumFactory = ForumFactory.getInstance(getAuthToken(request));
59                 ProfileManager manager = forumFactory.getProfileManager();
60         //// User user = manager.getUser(getAuthToken(request).getUserID());
61

62                 int nb=manager.getGroupCount();
63                 
64                 
65                 GroupBean gb=null;
66                 Group group = null;
67                 Iterator JavaDoc groupIterator = manager.groups(start,maxPageItems);
68                 while( groupIterator.hasNext() ) {
69                     group = (Group)groupIterator.next();
70                     
71                     if(!SecurityTools.isGroupAdmin(getAuthToken(request),group)){
72                         nb--;
73                         continue;
74                     }
75                     
76                     gb = new GroupBean();
77                     gb.setId( group.getID());
78                     gb.setName( group.getName());
79                     gb.setDescription(group.getDescription());
80                     gb.setNumMembers( group.getMemberCount());
81                     gb.setNumAdmins( group.getAdministratorCount());
82                     v.add(gb);
83                 }
84                 
85                 request.setAttribute("groups",v);
86                 request.setAttribute("nbItems",new Integer JavaDoc(nb));
87             request.setAttribute("isSystemAdmin",new Boolean JavaDoc(SecurityTools.isSystemAdmin(getAuthToken(request))));
88                 
89         } catch (Exception JavaDoc e) {
90             String JavaDoc eid=this.getClass().getName()+"_"+System.currentTimeMillis();
91             log.error("eid:"+eid+"\nsessionID" +request.getSession().getId(),e) ;
92             messages.add("general", new ActionMessage("error.general","error id:"+eid));
93         }
94         
95         if (!messages.isEmpty()) {
96             saveMessages(request, messages);
97         }
98             
99         return mapping.findForward("view");
100     }
101
102 }
Popular Tags