001: /*
002: * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/admin/MemberGroupWebHandler.java,v 1.40 2007/12/17 09:09:41 minhnn Exp $
003: * $Author: minhnn $
004: * $Revision: 1.40 $
005: * $Date: 2007/12/17 09:09:41 $
006: *
007: * ====================================================================
008: *
009: * Copyright (C) 2002-2007 by MyVietnam.net
010: *
011: * All copyright notices regarding mvnForum MUST remain
012: * intact in the scripts and in the outputted HTML.
013: * The "powered by" text/logo with a link back to
014: * http://www.mvnForum.com and http://www.MyVietnam.net in
015: * the footer of the pages MUST remain visible when the pages
016: * are viewed on the internet or intranet.
017: *
018: * This program is free software; you can redistribute it and/or modify
019: * it under the terms of the GNU General Public License as published by
020: * the Free Software Foundation; either version 2 of the License, or
021: * any later version.
022: *
023: * This program is distributed in the hope that it will be useful,
024: * but WITHOUT ANY WARRANTY; without even the implied warranty of
025: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
026: * GNU General Public License for more details.
027: *
028: * You should have received a copy of the GNU General Public License
029: * along with this program; if not, write to the Free Software
030: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
031: *
032: * Support can be obtained from support forums at:
033: * http://www.mvnForum.com/mvnforum/index
034: *
035: * Correspondence and Marketing Questions can be sent to:
036: * info at MyVietnam net
037: *
038: * @author: Minh Nguyen
039: * @author: Mai Nguyen
040: */
041: package com.mvnforum.admin;
042:
043: import java.io.*;
044: import java.sql.Timestamp;
045: import java.util.Collection;
046: import java.util.Locale;
047:
048: import com.mvnforum.*;
049: import com.mvnforum.auth.*;
050: import com.mvnforum.db.*;
051:
052: import net.myvietnam.mvncore.exception.*;
053: import net.myvietnam.mvncore.security.SecurityUtil;
054: import net.myvietnam.mvncore.service.MvnCoreServiceFactory;
055: import net.myvietnam.mvncore.service.EventLogService;
056: import net.myvietnam.mvncore.util.*;
057: import net.myvietnam.mvncore.web.GenericRequest;
058: import org.apache.commons.logging.Log;
059: import org.apache.commons.logging.LogFactory;
060:
061: public class MemberGroupWebHandler {
062:
063: private static Log log = LogFactory
064: .getLog(MemberGroupWebHandler.class);
065:
066: private OnlineUserManager onlineUserManager = OnlineUserManager
067: .getInstance();
068:
069: private static EventLogService eventLogService = MvnCoreServiceFactory
070: .getMvnCoreService().getEventLogService();
071:
072: public MemberGroupWebHandler() {
073: }
074:
075: public void processAdd(GenericRequest request) throws IOException,
076: BadInputException, CreateException, DatabaseException,
077: ObjectNotFoundException, AuthenticationException {
078:
079: SecurityUtil.checkHttpPostMethod(request);
080:
081: OnlineUser onlineUser = onlineUserManager
082: .getOnlineUser(request);
083: MVNForumPermission permission = onlineUser.getPermission();
084: permission.ensureCanAdminSystem();
085:
086: // now check the password
087: MyUtil.ensureCorrectCurrentPassword(request);
088:
089: Locale locale = I18nUtil.getLocaleInRequest(request);
090:
091: Timestamp now = DateUtil.getCurrentGMTTimestamp();
092:
093: int groupID = GenericParamUtil
094: .getParameterInt(request, "group");
095:
096: // check if the group is one of the reserved groups
097: if (groupID == MVNForumConstant.GROUP_ID_OF_REGISTERED_MEMBERS) {
098: // actually it could be ok to list member in this group
099: String localizedMessage = MVNForumResourceBundle
100: .getString(
101: locale,
102: "java.lang.AssertionError.cannot_add_member_to_virtual_group_registered_members");
103: throw new AssertionError(localizedMessage);
104: //throw new AssertionError("Cannot add member to virtual group Registered Members.");
105: } else if (groupID <= MVNForumConstant.LAST_RESERVED_GROUP_ID) {
106: String localizedMessage = MVNForumResourceBundle
107: .getString(locale,
108: "java.lang.AssertionError.cannot_add_member_to_virtual_reserved_group");
109: throw new AssertionError(localizedMessage);
110: //throw new AssertionError("Cannot add member to a reserved (virtual) group.");
111: }
112:
113: String memberNames = GenericParamUtil.getParameterSafe(request,
114: "MemberNames", true);
115: int privilege = 0;//GenericParamUtil.getParameterInt(request, "Privilege");
116:
117: //log.debug("member names = " + memberNames);
118: StringReader stringReader = new StringReader(memberNames);
119: BufferedReader reader = new BufferedReader(stringReader);
120:
121: String memberName = null;
122: while ((memberName = reader.readLine()) != null) {
123: //log.debug("name = " + memberName + " length = " + memberName.length());
124: memberName = memberName.trim();
125: if (memberName.length() > 0) {
126: try {
127: DAOFactory.getMemberGroupDAO().create(groupID,
128: memberName, privilege,
129: now/*creationDate*/, now/*modifiedDate*/);
130: } catch (DuplicateKeyException ex) {
131: // already existed, just ignore
132: } catch (ForeignKeyNotFoundException ex) {
133: // member not found, just ignore
134: }
135: }// if memberName is not empty
136: }//while
137: }
138:
139: /*
140: * @todo: check if we should reset the GroupOwnerID from Groups table ???
141: */
142: public void processDelete(GenericRequest request)
143: throws BadInputException, ObjectNotFoundException,
144: DatabaseException, AuthenticationException {
145:
146: OnlineUser onlineUser = onlineUserManager
147: .getOnlineUser(request);
148: MVNForumPermission permission = onlineUser.getPermission();
149: permission.ensureCanAdminSystem();
150:
151: // primary key column(s)
152: int groupID = GenericParamUtil
153: .getParameterInt(request, "group");
154: int memberID = GenericParamUtil.getParameterInt(request,
155: "memberid");
156:
157: DAOFactory.getMemberGroupDAO().delete(groupID, memberID);
158:
159: String actionDesc = MVNForumResourceBundle.getString(
160: MVNForumConfig.getEventLogLocale(),
161: "mvnforum.eventlog.desc.DeleteMemberGroupProcess",
162: new Object[] { new Integer(groupID),
163: new Integer(memberID) });
164: eventLogService
165: .logEvent(onlineUser.getMemberName(), request
166: .getRemoteAddr(),
167: MVNForumConstant.EVENT_LOG_MAIN_MODULE,
168: MVNForumConstant.EVENT_LOG_SUB_MODULE_ADMIN,
169: "delete member group", actionDesc,
170: EventLogService.HIGH);
171:
172: }
173:
174: public void prepareList_inGroup_limit(GenericRequest request)
175: throws DatabaseException, BadInputException,
176: ObjectNotFoundException, AuthenticationException {
177:
178: OnlineUser onlineUser = onlineUserManager
179: .getOnlineUser(request);
180: MVNForumPermission permission = onlineUser.getPermission();
181: permission.ensureCanAdminSystem();
182:
183: Locale locale = I18nUtil.getLocaleInRequest(request);
184:
185: int groupID = GenericParamUtil
186: .getParameterInt(request, "group");
187:
188: // check if the group is one of the reserved groups
189: if (groupID == MVNForumConstant.GROUP_ID_OF_REGISTERED_MEMBERS) {
190: // actually it could be ok to list member in this group
191: String localizedMessage = MVNForumResourceBundle
192: .getString(
193: locale,
194: "java.lang.AssertionError.cannot_list_member_in_virtual_group_registered_members");
195: throw new AssertionError(localizedMessage);
196: //throw new AssertionError("Cannot list member in virtual group Registered Members.");
197: } else if (groupID <= MVNForumConstant.LAST_RESERVED_GROUP_ID) {
198: String localizedMessage = MVNForumResourceBundle
199: .getString(locale,
200: "java.lang.AssertionError.cannot_list_member_in_reserved_group");
201: throw new AssertionError(localizedMessage);
202: //throw new AssertionError("Cannot list member in a reserved (virtual) group.");
203: }
204:
205: GroupsBean groupsBean = DAOFactory.getGroupsDAO().getGroup(
206: groupID);
207: Collection memberGroupBeans = DAOFactory.getMemberGroupDAO()
208: .getBeans_inGroup(groupID);
209:
210: request.setAttribute("MemberGroupBeans", memberGroupBeans);
211: request.setAttribute("GroupsBean", groupsBean);
212: }
213: }
|