|
What this is
Other links
The source code/* * $Header: /cvsroot/mvnforum/mvnforum/src/com/mvnforum/admin/ImportWebHelper.java,v 1.6 2005/01/18 11:52:12 minhnn Exp $ * $Author: minhnn $ * $Revision: 1.6 $ * $Date: 2005/01/18 11:52:12 $ * * ==================================================================== * * Copyright (C) 2002-2005 by MyVietnam.net * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * All copyright notices regarding mvnForum MUST remain intact * in the scripts and in the outputted HTML. * The "powered by" text/logo with a link back to * http://www.mvnForum.com and http://www.MyVietnam.net in the * footer of the pages MUST remain visible when the pages * are viewed on the internet or intranet. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * Support can be obtained from support forums at: * http://www.mvnForum.com/mvnforum/index * * Correspondence and Marketing Questions can be sent to: * info@MyVietnam.net * * @author: Igor Manic imanic@users.sourceforge.net */ package com.mvnforum.admin; import java.io.*; import java.sql.*; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.mvnforum.*; import com.mvnforum.auth.MVNForumPermission; import com.mvnforum.db.*; import net.myvietnam.mvncore.db.DBUtils; import net.myvietnam.mvncore.exception.*; /** * @author <a href="mailto:imanic@users.sourceforge.net">Igor Manic * @version $Revision: 1.6 $, $Date: 2005/01/18 11:52:12 $ * <br/> * <code>ImportWebHelper todo Igor: enter description * */ public class ImportWebHelper { /** Message log. */ private static Log log = LogFactory.getLog(ImportWebHelper.class); protected ImportWebHelper() { } // ================================================================= // ======== UTILITY METHODS FOR CLEARING PREVIOUS CONTENTS ========= // ================================================================= /* I need this method because db package doesn't allow me to enter some * values I need to (for example, to ensure creating predefined groups * having GroupIDs I want them to be (like in .sql script) */ protected static int execUpdateQuery(String query) throws DatabaseException { Connection connection = null; PreparedStatement statement = null; ResultSet resultSet = null; try { connection = DBUtils.getConnection(); statement = connection.prepareStatement(query); return statement.executeUpdate(); } catch (SQLException sqle) { log.error("Sql Execution Error!", sqle); throw new DatabaseException("Error executing SQL in ImportWebHelper.execUpdateQuery."); } finally { DBUtils.closeResultSet(resultSet); DBUtils.closeStatement(statement); DBUtils.closeConnection(connection); } } private static void clearTable(String tableName) throws DatabaseException { execUpdateQuery("DELETE FROM " + tableName); } private static void emptyDirectory(File dir) throws IOException { if (dir.isFile()) { log.error("Called emptyDirectory on a file \""+dir.getAbsolutePath()+"\"."); throw new IOException("IOException: not a directory."); } File[] files = dir.listFiles(); if (files != null) { for (int i = 0; i < files.length; i++) { File file = files[i]; if (file.isFile()) { file.delete(); } else { emptyDirectory(file); } } } } private static void emptyDirectory(String path) throws IOException { emptyDirectory(new File(path)); } protected static void clearFiles(ServletContext context) throws IOException { addImportantMessage("Deleting previous files..."); emptyDirectory(MVNForumConfig.getSearchPostIndexDir()); emptyDirectory(MVNForumConfig.getAttachmentDir()); emptyDirectory(context.getRealPath(MVNForumGlobal.UPLOADED_AVATAR_DIR)); //DO NOT DELETE OR EMPTY getTempDir() BECAUSE IT MAY CONTAIN UPLOADED IMPORT FILE WHICH IS GOING TO BE PROCESSED } protected static void clearDatabase() throws DatabaseException { addImportantMessage("Clearing previous database contents..."); clearTable(RankDAO.TABLE_NAME); clearTable(FavoriteThreadDAO.TABLE_NAME); clearTable(AttachmentDAO.TABLE_NAME); clearTable(WatchDAO.TABLE_NAME); clearTable(PostDAO.TABLE_NAME); clearTable(ThreadDAO.TABLE_NAME); clearTable(MemberForumDAO.TABLE_NAME); clearTable(GroupForumDAO.TABLE_NAME); clearTable(ForumDAO.TABLE_NAME); clearTable(CategoryDAO.TABLE_NAME); clearTable(MemberGroupDAO.TABLE_NAME); clearTable(GroupPermissionDAO.TABLE_NAME); clearTable(GroupsDAO.TABLE_NAME); clearTable(MemberPermissionDAO.TABLE_NAME); clearTable(MessageFolderDAO.TABLE_NAME); clearTable(MemberDAO.TABLE_NAME); } // ================================================================= // =============== CREATING DEFAULT DATABASE RECORDS =============== // ================================================================= public static void createDefaultContents() throws DuplicateKeyException, ObjectNotFoundException, CreateException, DatabaseException, ForeignKeyNotFoundException { createDefaultAdminMember(); createDefaultGuestMember(); createDefaultRegisteredMembersGroup(); createDefaultRanks(); } public static void createDefaultGuestMember() throws DuplicateKeyException, ObjectNotFoundException, CreateException, DatabaseException, ForeignKeyNotFoundException { createDefaultGuestMember(MVNForumConfig.getDefaultGuestName()); } public static void createDefaultGuestMember(String guestName) throws DuplicateKeyException, ObjectNotFoundException, CreateException, DatabaseException, ForeignKeyNotFoundException { if ((guestName==null) || (guestName.length()<=0)) { guestName=MVNForumConfig.getDefaultGuestName(); } addImportantMessage("Adding virtual guest member \""+guestName+"\"..."); //todo Igor: add an array of individual perms to the previous message //e.g.: "... with READ_POST, ADD_POST and ADD_THREAD permissions."); MemberXML memberXML=new MemberXML(); memberXML.addMember(Integer.toString(MVNForumConstant.MEMBER_ID_OF_GUEST), guestName, "N/A"/*MemberPassword - not used - can't be empty*/, "N/A"/*MemberFirstEmail - not used - can't be empty*/, "N/A"/*MemberEmail - not used - can't be empty*/, "0", "1", "127.0.0.1", "127.0.0.1", "0", "0", null /*memberCreationDate*/, null /*memberModifiedDate*/, null /*memberExpireDate*/, null /*memberLastLogon*/, "0", "0", "" /*memberActivateCode*/, "" /*memberTempPassword*/, "0" /*memberMessageCount*/, "0" /*memberMessageOption*/, "10" /*memberPostsPerPage*/, "0" /*memberWarnCount*/, "0" /*memberVoteCount*/, "0" /*memberVoteTotalStars*/, "0" /*memberRewardPoints*/, "" /*memberTitle*/, "0" /*memberTimeZone*/, "" /*memberSignature*/, "" /*memberAvatar*/, "" /*memberSkin*/, "" /*memberLanguage*/, guestName /*memberFirstname*/, "" /*memberLastname*/, "1" /*memberGender*/, null /*memberBirthday*/, "" /*memberAddress*/, "" /*memberCity*/, "" /*memberState*/, "" /*memberCountry*/, "" /*memberPhone*/, "" /*memberMobile*/, "" /*memberFax*/, "" /*memberCareer*/, "" /*memberHomepage*/, "" /*memberYahoo*/, "" /*memberAol*/, "" /*memberIcq*/, "" /*memberMsn*/, "" /*memberCoolLink1*/, "" /*memberCoolLink2*/); memberXML.addMemberPermission(Integer.toString(MVNForumPermission.PERMISSION_LIMITED_USER)); //todo Igor: replace previous permission with an array of individual perms } public static void createDefaultAdminMember() throws ObjectNotFoundException, CreateException, DatabaseException, DuplicateKeyException, ForeignKeyNotFoundException { createDefaultAdminMember("Admin"); } public static void createDefaultAdminMember(String adminName) throws ObjectNotFoundException, CreateException, DatabaseException, DuplicateKeyException, ForeignKeyNotFoundException { if ((adminName==null) || (adminName.length()<=0)) { adminName="Admin"; } addImportantMessage("Adding system administrator \""+adminName+"\"..."); MemberXML memberXML = new MemberXML(); memberXML.addMember(Integer.toString(MVNForumConstant.MEMBER_ID_OF_ADMIN), adminName, "ISMvKXpXpadDiUoOSoAfww==", "admin@yourdomain.com", "admin@yourdomain.com", "0", "1", "127.0.0.1", "127.0.0.1", "0", "0", null /*memberCreationDate*/, null /*memberModifiedDate*/,null /*memberExpireDate*/, null /*memberLastLogon*/, "0", "0", "" /*memberActivateCode*/, "" /*memberTempPassword*/, "0" /*memberMessageCount*/, "0" /*memberMessageOption*/, "10" /*memberPostsPerPage*/, "0" /*memberWarnCount*/, "0" /*memberVoteCount*/, "0" /*memberVoteTotalStars*/, "0" /*memberRewardPoints*/, "" /*memberTitle*/, "0" /*memberTimeZone*/, "" /*memberSignature*/, "" /*memberAvatar*/, "" /*memberSkin*/, "" /*memberLanguage*/, adminName /*memberFirstname*/, "" /*memberLastname*/, "1" /*memberGender*/, null /*memberBirthday*/, "" /*memberAddress*/, "" /*memberCity*/, "" /*memberState*/, "" /*memberCountry*/, "" /*memberPhone*/, "" /*memberMobile*/, "" /*memberFax*/, "" /*memberCareer*/, "" /*memberHomepage*/, "" /*memberYahoo*/, "" /*memberAol*/, "" /*memberIcq*/, "" /*memberMsn*/, "" /*memberCoolLink1*/, "" /*memberCoolLink2*/); memberXML.addMemberPermission(Integer.toString(MVNForumPermission.PERMISSION_SYSTEM_ADMIN)); memberXML.addMessageFolder("Inbox", "0" /*folderOrder*/, null /*folderCreationDate*/, null /*folderModifiedDate*/); memberXML.addMessageFolder("Sent", "0" /*folderOrder*/, null /*folderCreationDate*/, null /*folderModifiedDate*/); } public static void createDefaultRegisteredMembersGroup() throws CreateException, DuplicateKeyException, ObjectNotFoundException, DatabaseException, ForeignKeyNotFoundException { createDefaultRegisteredMembersGroup(null); } public static void createDefaultRegisteredMembersGroup(String groupOwnerName) throws CreateException, DuplicateKeyException, ObjectNotFoundException, DatabaseException, ForeignKeyNotFoundException { addImportantMessage("Adding default virtual group of all registered members..."); GroupXML groupXML = new GroupXML(); groupXML.addGroup(Integer.toString(MVNForumConstant.GROUP_ID_OF_REGISTERED_MEMBERS), groupOwnerName, "Registered Members", "All registered users belong to this group.", null/*GroupOption*/, null/*GroupCreationDate*/, null/*GroupModifiedDate*/); groupXML.addGroupPermission(Integer.toString(MVNForumPermission.PERMISSION_NORMAL_USER)); //todo Igor: replace previous permission with an array of individual perms } public static void createDefaultRanks() throws CreateException, DuplicateKeyException, ObjectNotFoundException, DatabaseException, ForeignKeyNotFoundException { addImportantMessage("Adding default rank titles \"Stranger\", \"Newbie\", \"Member\" and \"Advanced Member\"..."); (new RankXML()).addRank("0", "0", "Stranger", "", "0", "0"); (new RankXML()).addRank("20", "0", "Newbie", "", "0", "0"); (new RankXML()).addRank("50", "0", "Member", "", "0", "0"); (new RankXML()).addRank("100", "0", "Advanced Member", "", "0", "0"); } // ================================================================= // ===== PRINTING STATUS AND ERROR MESSAGES TO THE OUTPUT HTML ===== // ================================================================= protected static void setOutputHtmlWriter(PrintWriter outWriter) { ImportWebHandler.setOutputHtmlWriter(outWriter); } protected static void setMessageOutputLevel(int messageLevel) { ImportWebHandler.setMessageOutputLevel(messageLevel); } protected static void startHtml(HttpServletRequest request) { ImportWebHandler.startHtml(request); } protected static void endHtml() { ImportWebHandler.endHtml(); } protected static void addMessage(String message) { ImportWebHandler.addMessage(message); } protected static void addErrorMessage(String message) { ImportWebHandler.addErrorMessage(message); } protected static void addSuccessMessage() { ImportWebHandler.addSuccessMessage(); } protected static void addImportantMessage(String message) { ImportWebHandler.addImportantMessage(message); } protected static void addFinalErrorHandling(HttpServletRequest request, boolean clearIfError) { ImportWebHandler.addFinalErrorHandling(request, clearIfError); } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.