KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2  * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/admin/MemberGroupWebHandler.java,v 1.16 2006/04/14 17:05:25 minhnn Exp $
3  * $Author: minhnn $
4  * $Revision: 1.16 $
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.io.*;
44 import java.sql.Timestamp JavaDoc;
45 import java.util.Collection JavaDoc;
46 import java.util.Locale JavaDoc;
47
48 import com.mvnforum.*;
49 import com.mvnforum.auth.*;
50 import com.mvnforum.db.DAOFactory;
51 import com.mvnforum.db.GroupsBean;
52 import net.myvietnam.mvncore.exception.*;
53 import net.myvietnam.mvncore.util.*;
54 import net.myvietnam.mvncore.web.GenericRequest;
55 import org.apache.commons.logging.Log;
56 import org.apache.commons.logging.LogFactory;
57
58 public class MemberGroupWebHandler {
59
60     private static Log log = LogFactory.getLog(MemberGroupWebHandler.class);
61
62     private OnlineUserManager onlineUserManager = OnlineUserManager.getInstance();
63
64     public MemberGroupWebHandler() {
65     }
66
67     public void processAdd(GenericRequest request)
68         throws IOException, BadInputException, CreateException, DatabaseException,
69         ObjectNotFoundException, AuthenticationException, AssertionException {
70
71         OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
72         MVNForumPermission permission = onlineUser.getPermission();
73         permission.ensureCanAdminSystem();
74
75         Locale JavaDoc locale = I18nUtil.getLocaleInRequest(request);
76
77         Timestamp JavaDoc now = DateUtil.getCurrentGMTTimestamp();
78         Timestamp JavaDoc expireDate = new Timestamp JavaDoc(now.getTime() + DateUtil.DAY * 90);// for company
79

80         int groupID = GenericParamUtil.getParameterInt(request, "group");
81
82         // check if the group is one of the reserved groups
83
if (groupID == MVNForumConstant.GROUP_ID_OF_REGISTERED_MEMBERS) {
84             // actually it could be ok to list member in this group
85
String JavaDoc localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.AssertionException.cannot_add_member_to_virtual_group_registered_members");
86             throw new AssertionException(localizedMessage);
87             //throw new AssertionException("Cannot add member to virtual group Registered Members.");
88
} else if (groupID <= MVNForumConstant.LAST_RESERVED_GROUP_ID) {
89             String JavaDoc localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.AssertionException.cannot_add_member_to_virtual_reserved_group");
90             throw new AssertionException(localizedMessage);
91             //throw new AssertionException("Cannot add member to a reserved (virtual) group.");
92
}
93
94         String JavaDoc memberNames = GenericParamUtil.getParameterSafe(request, "MemberNames", true);
95         int privilege = 0;//GenericParamUtil.getParameterInt(request, "Privilege");
96

97         // Begin for Company
98
int isActive = 0;
99         int relationType = 0;
100         int relationOption = 0;
101         int relationStatus = 0;
102         int companyID = 0;
103         GroupsBean groupsBean = DAOFactory.getGroupsDAO().getGroup(groupID);
104         String JavaDoc groupName = groupsBean.getGroupName();
105         if (groupName.toLowerCase().startsWith(MVNForumGlobal.COMPANY_GROUP_FREFIX.toLowerCase())) {
106             try {
107                 companyID = DAOFactory.getCompanyDAO().getCompanyIDFromGroupID(groupID);
108             } catch (ObjectNotFoundException e) {
109                 String JavaDoc localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.company_not_exists.with_groupid", new Object JavaDoc[] {new Integer JavaDoc(groupID)});
110                 throw new ObjectNotFoundException(localizedMessage);
111             }
112         }
113         // End for Company
114

115         //log.debug("member names = " + memberNames);
116
StringReader stringReader = new StringReader(memberNames);
117         BufferedReader reader = new BufferedReader(stringReader);
118
119         String JavaDoc memberName = null;
120         while ((memberName = reader.readLine()) != null) {
121             //log.debug("name = " + memberName + " length = " + memberName.length());
122
memberName = memberName.trim();
123             if (memberName.length() > 0) {
124                 try {
125                     DAOFactory.getMemberGroupDAO().create(groupID, memberName, privilege,
126                                                 now/*creationDate*/, now/*modifiedDate*/);
127
128                     // Begin for Company
129
if (companyID > 0) {
130                         // if memberName does not exist, then the ForeignKeyNotFoundException already thrown above
131
int memberID = DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName);
132                         DAOFactory.getMemberCompanyDAO().create(memberID, memberName, companyID,
133                                               now/*creationDate*/, expireDate, isActive,
134                                               relationType, relationOption, relationStatus);
135                     }
136                     // End for Company
137
} catch (DuplicateKeyException ex) {
138                     // already existed, just ignore
139
} catch (ForeignKeyNotFoundException ex) {
140                     // member not found, just ignore
141
}
142             }// if memberName is not empty
143
}//while
144
}
145
146     /*
147      * @todo: check if we should reset the GroupOwnerID from Groups table ???
148      */

149     public void processDelete(GenericRequest request)
150         throws BadInputException, ObjectNotFoundException, DatabaseException, AuthenticationException, AssertionException {
151
152         OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
153         MVNForumPermission permission = onlineUser.getPermission();
154         permission.ensureCanAdminSystem();
155
156         // primary key column(s)
157
int groupID = GenericParamUtil.getParameterInt(request, "group");
158         int memberID= GenericParamUtil.getParameterInt(request, "memberid");
159
160         // Begin for Company
161
int companyID = 0;
162         GroupsBean groupsBean = DAOFactory.getGroupsDAO().getGroup(groupID);
163         String JavaDoc groupName = groupsBean.getGroupName();
164         if (groupName.toLowerCase().startsWith(MVNForumGlobal.COMPANY_GROUP_FREFIX.toLowerCase())) {
165             try {
166                 companyID = DAOFactory.getCompanyDAO().getCompanyIDFromGroupID(groupID);
167             } catch (ObjectNotFoundException e) {
168                 Locale JavaDoc locale = I18nUtil.getLocaleInRequest(request);
169                 String JavaDoc localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.ObjectNotFoundException.company_not_exists.with_groupid", new Object JavaDoc[] {new Integer JavaDoc(groupID)});
170                 throw new ObjectNotFoundException(localizedMessage);
171             }
172         }
173         // End for Company
174

175         DAOFactory.getMemberGroupDAO().delete(groupID, memberID);
176
177         // Delete member from the company
178
if (companyID > 0) {
179             DAOFactory.getMemberCompanyDAO().delete(memberID, companyID);
180         }
181
182         //Netmama's function: We must delete all Member belongs to this memberID also in MemberTutor
183
if (MVNForumConfig.getEnableCompany()) {
184             //@todo: what is it here ???
185
DAOFactory.getMemberTutorDAO().deleteMembers_inTutor(memberID);
186         }
187     }
188
189     public void prepareList_inGroup_limit(GenericRequest request)
190         throws DatabaseException, BadInputException, ObjectNotFoundException, AuthenticationException, AssertionException {
191
192         OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
193         MVNForumPermission permission = onlineUser.getPermission();
194         permission.ensureCanAdminSystem();
195
196         Locale JavaDoc locale = I18nUtil.getLocaleInRequest(request);
197
198         int groupID = GenericParamUtil.getParameterInt(request, "group");
199
200         // check if the group is one of the reserved groups
201
if (groupID == MVNForumConstant.GROUP_ID_OF_REGISTERED_MEMBERS) {
202             // actually it could be ok to list member in this group
203
String JavaDoc localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.AssertionException.cannot_list_member_in_virtual_group_registered_members");
204             throw new AssertionException(localizedMessage);
205             //throw new AssertionException("Cannot list member in virtual group Registered Members.");
206
} else if (groupID <= MVNForumConstant.LAST_RESERVED_GROUP_ID) {
207             String JavaDoc localizedMessage = MVNForumResourceBundle.getString(locale, "mvncore.exception.AssertionException.cannot_list_member_in_reserved_group");
208             throw new AssertionException(localizedMessage);
209             //throw new AssertionException("Cannot list member in a reserved (virtual) group.");
210
}
211
212         GroupsBean groupsBean = DAOFactory.getGroupsDAO().getGroup(groupID);
213         Collection JavaDoc memberGroupBeans = DAOFactory.getMemberGroupDAO().getBeans_inGroup(groupID);
214
215         request.setAttribute("MemberGroupBeans", memberGroupBeans);
216         request.setAttribute("GroupsBean", groupsBean);
217     }
218 }
219
Popular Tags