001: /*
002: * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/admin/importexport/mvnforum/MvnForumXML.java,v 1.11 2007/01/15 10:27:35 dungbtm Exp $
003: * $Author: dungbtm $
004: * $Revision: 1.11 $
005: * $Date: 2007/01/15 10:27:35 $
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: Igor Manic
039: */
040: package com.mvnforum.admin.importexport.mvnforum;
041:
042: import com.mvnforum.MVNForumConfig;
043: import com.mvnforum.MVNForumConstant;
044: import com.mvnforum.admin.*;
045: import com.mvnforum.db.DAOFactory;
046: import net.myvietnam.mvncore.exception.*;
047:
048: /**
049: * @author Igor Manic
050: * @version $Revision: 1.11 $, $Date: 2007/01/15 10:27:35 $
051: * <br/>
052: * <code>MvnForumXML</code> todo Igor: enter description
053: *
054: */
055: public class MvnForumXML {
056:
057: // Did we find Admin member? If we didn't, default one will be created, with password "admin".
058: public static boolean addedAdminMember = false;
059: // Did we find Guest member? If we didn't, default one will be created.
060: public static boolean addedGuestMember = false;
061: // Did we find Registered Members group? If we didn't, default one will be created.
062: public static boolean addedRegisteredMembersGroup = false;
063:
064: public MvnForumXML() throws DatabaseException, CreateException,
065: DuplicateKeyException, ObjectNotFoundException,
066: ForeignKeyNotFoundException {
067: super ();
068: MvnForumXML.addedAdminMember = false;
069: MvnForumXML.addedGuestMember = false;
070: MvnForumXML.addedRegisteredMembersGroup = false;
071: ImportMvnForum.createDefaultContents();
072: }
073:
074: // ================================================================================
075: // ==================== METHODS TO BE CALLED FROM THE DIGESTER ====================
076: // ================================================================================
077: public void setMvnForumXmlVersion(String value) {
078: ImportMvnForum.addMessage("mvnForum XML version = \"" + value
079: + "\"");
080: }
081:
082: public void setMvnForumExportDate(String value) {
083: ImportMvnForum.addMessage("mvnForum XML export date = \""
084: + value + "\"");
085: }
086:
087: public void postProcessMemberList() throws CreateException,
088: DuplicateKeyException, ObjectNotFoundException,
089: DatabaseException, ForeignKeyNotFoundException,
090: BadInputException {
091: MvnForumXML.checkAdminMember();
092: MvnForumXML.checkGuestMember();
093: }
094:
095: public void postProcessGroupList() throws CreateException,
096: DuplicateKeyException, ObjectNotFoundException,
097: DatabaseException, ForeignKeyNotFoundException {
098: MvnForumXML.checkRegisteredMembersGroup();
099: }
100:
101: public static void finishImport() throws CreateException,
102: DuplicateKeyException, ObjectNotFoundException,
103: DatabaseException, ForeignKeyNotFoundException,
104: BadInputException {
105: checkAdminMember();
106: checkGuestMember();
107: checkRegisteredMembersGroup();
108: }
109:
110: public void addGuestGlobalPermission(String permission)
111: throws CreateException, DuplicateKeyException,
112: ObjectNotFoundException, DatabaseException,
113: ForeignKeyNotFoundException {
114: MvnForumXML.addGuestMemberPermission(permission);
115: }
116:
117: public void addRegisteredMembersGlobalPermission(String permission)
118: throws CreateException, DuplicateKeyException,
119: ObjectNotFoundException, DatabaseException,
120: ForeignKeyNotFoundException {
121: MvnForumXML.addRegisteredMembersGroupPermission(permission);
122: }
123:
124: public void addRank(String rankMinPosts, String rankLevel,
125: String rankTitle, String rankImage, String rankType,
126: String rankOption) throws CreateException,
127: DuplicateKeyException, ObjectNotFoundException,
128: DatabaseException, ForeignKeyNotFoundException {
129: ImportMvnForum.addMessage("Adding rank title \"" + rankTitle
130: + "\".");
131: (new RankXML()).addRank(rankMinPosts, rankLevel, rankTitle,
132: rankImage, rankType, rankOption);
133: }
134:
135: // ================================================================================
136: // ====================== UTILITY METHODS ABOUT PERMISSIONS =======================
137: // ================================================================================
138: /**
139: * TODO Igor: enter description
140: *
141: * @param username
142: * @param permission
143: */
144: public static void addMemberPermission(String username,
145: String permission) throws ObjectNotFoundException,
146: CreateException, DatabaseException,
147: ForeignKeyNotFoundException, DuplicateKeyException {
148: MemberXML.addMemberPermission(username, permission);
149: }
150:
151: /**
152: * TODO Igor: enter description
153: *
154: * @param permission
155: */
156: public static void addGuestMemberPermission(String permission)
157: throws CreateException, DatabaseException,
158: DuplicateKeyException, ForeignKeyNotFoundException {
159: MemberXML.addGuestMemberPermission(permission);
160: }
161:
162: /**
163: * TODO Igor: enter description
164: *
165: * @param permission
166: */
167: public static void addRegisteredMembersGroupPermission(
168: String permission) throws CreateException,
169: DatabaseException, DuplicateKeyException,
170: ForeignKeyNotFoundException {
171: GroupXML.addRegisteredMembersGroupPermission(permission);
172: }
173:
174: /**
175: * TODO Igor: enter description
176: *
177: * @param groupname
178: * @param permission
179: */
180: public static void addGroupPermission(String groupname,
181: String permission) throws CreateException,
182: DatabaseException, DuplicateKeyException,
183: ForeignKeyNotFoundException, ObjectNotFoundException {
184: GroupXML.addGroupPermission(groupname, permission);
185: }
186:
187: // ================================================================================
188: // ============================ OTHER PUBLIC METHODS ==============================
189: // ================================================================================
190: public static void checkAdminMember() throws CreateException,
191: DuplicateKeyException, ObjectNotFoundException,
192: DatabaseException, ForeignKeyNotFoundException,
193: BadInputException {
194: if (!addedAdminMember) {
195: ImportMvnForum
196: .addImportantMessage("Didn't find SYSTEM_ADMIN member. Adding default one with a name \""
197: + "admin\" and password \"admin\". For your security, "
198: + "you should first change that password.");
199: ImportWebHelper.createDefaultAdminMember();
200: addedAdminMember = true;
201: }
202: }
203:
204: public static void checkGuestMember() throws CreateException,
205: DuplicateKeyException, ObjectNotFoundException,
206: DatabaseException, ForeignKeyNotFoundException,
207: BadInputException {
208: if (!addedGuestMember) {
209: ImportMvnForum
210: .addImportantMessage("Didn't find virtual guest member. "
211: + "Adding default one with a name \""
212: + MVNForumConfig.getDefaultGuestName()
213: + "\" and no password. "
214: + "He'll have READ_POST permissions in all forums, "
215: + "and global ADD_POST permission.");
216: try {
217: ImportWebHelper.createDefaultGuestMember();
218: } catch (DuplicateKeyException de) {
219: // do nothing
220: // ignore when the guest user existed
221: }
222: addedGuestMember = true;
223: }
224: }
225:
226: public static void checkRegisteredMembersGroup()
227: throws CreateException, DuplicateKeyException,
228: ObjectNotFoundException, DatabaseException,
229: ForeignKeyNotFoundException {
230: //ImportMvnForum.addImportantMessage("Import registered members ::: ");
231: if (!addedRegisteredMembersGroup) {
232: //set GroupOwnerName to the system admin
233: String groupOwnerName = "";
234: try {
235: groupOwnerName = DAOFactory.getMemberDAO().getMember(
236: MVNForumConstant.MEMBER_ID_OF_ADMIN)
237: .getMemberName();
238: } catch (Exception e) {
239: groupOwnerName = "";
240: }
241: ImportMvnForum
242: .addImportantMessage("Didn't find \"Registered Members\" group. "
243: + "Adding default one.");
244: ImportWebHelper
245: .createDefaultRegisteredMembersGroup(groupOwnerName);
246: addedRegisteredMembersGroup = true;
247: }
248: }
249:
250: }
|