KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > mvnforum > admin > GroupForumWebHandler


1 /*
2  * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/admin/GroupForumWebHandler.java,v 1.19 2006/04/14 17:05:25 minhnn Exp $
3  * $Author: minhnn $
4  * $Revision: 1.19 $
5  * $Date: 2006/04/14 17:05:25 $
6  *
7  * ====================================================================
8  *
9  * Copyright (C) 2002-2006 by MyVietnam.net
10  *
11  * All copyright notices regarding mvnForum MUST remain
12  * intact in the scripts and in the outputted HTML.
13  * The "powered by" text/logo with a link back to
14  * http://www.mvnForum.com and http://www.MyVietnam.net in
15  * the footer of the pages MUST remain visible when the pages
16  * are viewed on the internet or intranet.
17  *
18  * This program is free software; you can redistribute it and/or modify
19  * it under the terms of the GNU General Public License as published by
20  * the Free Software Foundation; either version 2 of the License, or
21  * any later version.
22  *
23  * This program is distributed in the hope that it will be useful,
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26  * GNU General Public License for more details.
27  *
28  * You should have received a copy of the GNU General Public License
29  * along with this program; if not, write to the Free Software
30  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
31  *
32  * Support can be obtained from support forums at:
33  * http://www.mvnForum.com/mvnforum/index
34  *
35  * Correspondence and Marketing Questions can be sent to:
36  * info at MyVietnam net
37  *
38  * @author: Minh Nguyen
39  * @author: Mai Nguyen
40  */

41 package com.mvnforum.admin;
42
43 import java.util.*;
44
45 import com.mvnforum.MVNForumResourceBundle;
46 import com.mvnforum.auth.*;
47 import com.mvnforum.db.*;
48 import net.myvietnam.mvncore.exception.*;
49 import net.myvietnam.mvncore.util.GenericParamUtil;
50 import net.myvietnam.mvncore.util.I18nUtil;
51 import net.myvietnam.mvncore.web.GenericRequest;
52 import org.apache.commons.logging.Log;
53 import org.apache.commons.logging.LogFactory;
54
55 public class GroupForumWebHandler {
56
57     private static Log log = LogFactory.getLog(GroupForumWebHandler.class);
58
59     private OnlineUserManager onlineUserManager = OnlineUserManager.getInstance();
60
61     public GroupForumWebHandler() {
62     }
63
64     public void prepareList(GenericRequest request)
65         throws DatabaseException, BadInputException, ObjectNotFoundException, AuthenticationException, AssertionException {
66
67         OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
68         MVNForumPermission permission = onlineUser.getPermission();
69         int groupID = GenericParamUtil.getParameterInt(request, "group");
70         int forumID = GenericParamUtil.getParameterInt(request, "forum");
71
72         permission.ensureCanAssignToForum(forumID);
73         Locale locale = I18nUtil.getLocaleInRequest(request);
74
75         GroupsBean groupsBean = DAOFactory.getGroupsDAO().getGroup(groupID);
76         ForumBean forumBean = null;
77         try {
78             forumBean = ForumCache.getInstance().getBean(forumID);
79         } catch (ObjectNotFoundException e) {
80             String JavaDoc localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.forumid_not_exists", new Object JavaDoc[] {new Integer JavaDoc(forumID)});
81             throw new ObjectNotFoundException(localizedMessage);
82         }
83
84         ArrayList groupForumBeans = (ArrayList)DAOFactory.getGroupForumDAO().getBeans_inGroupForum(groupID, forumID);
85         int currentSize = groupForumBeans.size();
86         int[] currentPermissions = new int[currentSize];
87         for (int i = 0; i < currentSize; i++) {
88             GroupForumBean groupForumBean = (GroupForumBean)groupForumBeans.get(i);
89             currentPermissions[i] = groupForumBean.getPermission();
90         }
91
92         request.setAttribute("GroupsBean", groupsBean);
93         request.setAttribute("ForumBean", forumBean);
94         request.setAttribute("CurrentPermissions", currentPermissions);
95     }
96
97     public void processUpdate(GenericRequest request)
98         throws CreateException, ObjectNotFoundException, BadInputException, DatabaseException, DuplicateKeyException,
99         ForeignKeyNotFoundException, AuthenticationException, AssertionException {
100
101         OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
102         MVNForumPermission permission = onlineUser.getPermission();
103
104         Locale locale = I18nUtil.getLocaleInRequest(request);
105
106         String JavaDoc btnAdd = request.getParameter("btnAdd");
107         String JavaDoc btnRemove = request.getParameter("btnRemove");
108         boolean addAction = false;
109         if ((btnAdd != null) && btnAdd.equals("Add")) {
110             addAction = true;
111         } else if ((btnRemove != null) && btnRemove.equals("Remove")) {
112             addAction = false;
113         } else {
114             String JavaDoc localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.BadInputException.cannot_process.no_add_or_remove_is_specified");
115             throw new BadInputException(localizedMessage);
116             //throw new BadInputException("No Add or Remove has been specified. Cannot process!");
117
}
118
119         int groupID = GenericParamUtil.getParameterInt(request, "group");
120         int forumID = GenericParamUtil.getParameterInt(request, "forum");
121
122         permission.ensureCanAssignToForum(forumID);
123
124         if (addAction) {
125             log.debug("Add List:" + btnAdd);
126             String JavaDoc[] addList = request.getParameterValues("add");
127             for (int i = 0; (addList != null) && (i < addList.length); i++) {
128                 int perm = Integer.parseInt(addList[i]);
129                 log.debug("perm = " + perm);
130                 DAOFactory.getGroupForumDAO().create(groupID, forumID, perm);
131             }
132         } else {
133             log.debug("Remove List:" + btnRemove);
134             String JavaDoc[] removeList = request.getParameterValues("remove");
135             for (int i = 0; (removeList != null) && (i < removeList.length); i++) {
136                 int perm = Integer.parseInt(removeList[i]);
137                 log.debug("perm = " + removeList[i]);
138                 DAOFactory.getGroupForumDAO().delete(groupID, forumID, perm);
139             }
140         }//else
141
}
142
143     public void prepareAssignForumToGroup(GenericRequest request)
144         throws BadInputException, DatabaseException, ObjectNotFoundException,
145         AuthenticationException, AssertionException {
146
147         // In this function, we will show the current permission of this group
148
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
149         MVNForumPermission permission = onlineUser.getPermission();
150         permission.ensureCanAdminSystem();
151
152         int groupID = GenericParamUtil.getParameterInt(request, "group");
153
154         GroupsBean groupsBean = DAOFactory.getGroupsDAO().getGroup(groupID);
155         Collection groupForumBeans = DAOFactory.getGroupForumDAO().getBeans_inGroup(groupID);
156
157         request.setAttribute("GroupsBean", groupsBean);
158         request.setAttribute("GroupForumBeans", groupForumBeans);
159     }
160
161     public void prepareAssignGroupToForum(GenericRequest request)
162         throws BadInputException, DatabaseException, ObjectNotFoundException,
163         AuthenticationException, AssertionException {
164
165         // In this funrcion, we will show the current permission of this forum
166
OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
167         MVNForumPermission permission = onlineUser.getPermission();
168
169         int forumID = GenericParamUtil.getParameterInt(request, "forum");
170         Locale locale = I18nUtil.getLocaleInRequest(request);
171         permission.ensureCanAssignToForum(forumID);
172         ForumBean forumBean = null;
173         try {
174             forumBean = ForumCache.getInstance().getBean(forumID);
175         } catch (ObjectNotFoundException e) {
176             String JavaDoc localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.forumid_not_exists", new Object JavaDoc[] {new Integer JavaDoc(forumID)});
177             throw new ObjectNotFoundException(localizedMessage);
178         }
179         Collection groupsBeans = DAOFactory.getGroupsDAO().getGroups();
180         Collection groupForumBeans = DAOFactory.getGroupForumDAO().getBeans_inForum(forumID);
181         Collection memberForumBeans = DAOFactory.getMemberForumDAO().getBeans_inForum(forumID);
182
183         for (Iterator iter = groupForumBeans.iterator(); iter.hasNext(); ) {
184             GroupForumBean groupForumBean = (GroupForumBean)iter.next();
185             groupForumBean.setGroupsBean(GroupsBean.getGroupsBean(groupsBeans, groupForumBean.getGroupID()));
186         }
187         int memberID = 0;
188         try {
189             for (Iterator iter = memberForumBeans.iterator(); iter.hasNext(); ) {
190                 MemberForumBean memberForumBean = (MemberForumBean)iter.next();
191                 //@todo: Optimize (this method can be called many time for just one memberID)
192
memberID = memberForumBean.getMemberID();
193                 MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forPublic(memberID);
194                 memberForumBean.setMemberBean(memberBean);
195             }
196         } catch (ObjectNotFoundException e) {
197             String JavaDoc localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.memberid_not_exists", new Object JavaDoc[] {new Integer JavaDoc(memberID)});
198             throw new ObjectNotFoundException(localizedMessage);
199         }
200
201         request.setAttribute("ForumBean", forumBean);
202         request.setAttribute("GroupsBeans", groupsBeans);
203         request.setAttribute("GroupForumBeans", groupForumBeans);
204         request.setAttribute("MemberForumBeans", memberForumBeans);
205     }
206 }
207
Popular Tags