X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fmodule%2FModuleContent.java;h=7ba90822bb6ca60a2320179c73cc49a2654417d9;hb=d1fe8297d584e69a5d2bed84cc979d8bdd13cb31;hp=b71dc56c7c60acf1bffe07e0e4027428f1ac0f22;hpb=3a661e8f0f659ab5ed2ac0e4d982ac0b398d11f1;p=mir.git diff --git a/source/mircoders/module/ModuleContent.java b/source/mircoders/module/ModuleContent.java index b71dc56c..7ba90822 100755 --- a/source/mircoders/module/ModuleContent.java +++ b/source/mircoders/module/ModuleContent.java @@ -1,178 +1,140 @@ -package mircoders.module; - -import java.io.*; -import java.util.*; -import java.sql.*; -import javax.servlet.*; -import javax.servlet.http.*; +/* + * Copyright (C) 2001, 2002 The Mir-coders group + * + * This file is part of Mir. + * + * Mir 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 + * (at your option) any later version. + * + * Mir 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 Mir; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + * In addition, as a special exception, The Mir-coders gives permission to link + * the code of this program with any library licensed under the Apache Software License, + * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library + * (or with modified versions of the above that use the same license as the above), + * and distribute linked combinations including the two. You must obey the + * GNU General Public License in all respects for all of the code used other than + * the above mentioned libraries. If you modify this file, you may extend this + * exception to your version of the file, but you are not obligated to do so. + * If you do not wish to do so, delete this exception statement from your version. + */ -import mir.servlet.*; -import mir.module.*; -import mir.entity.*; -import mir.misc.*; -import mir.storage.*; +package mircoders.module; -import mircoders.entity.*; +import mir.log.LoggerWrapper; +import mir.module.AbstractModule; +import mir.storage.StorageObject; +import mir.util.JDBCStringRoutines; +import mircoders.global.*; -/* - * ContentObjekt - +/** * - * - * @author RK + *

Title: ModuleContent

+ *

Description: helper routines to manage articles

+ *

Copyright: Copyright (c) 2003

+ *

Company:

+ * @author not attributable + * @version 1.0 */ public class ModuleContent extends AbstractModule { - static Logfile theLog; - - public ModuleContent() { - super(); - if (theLog == null) theLog = Logfile.getInstance(Configuration.getProperty("Home") + Configuration.getProperty("Module.Content.Logfile")); - } - - public ModuleContent(StorageObject theStorage) { - this.theStorage = theStorage; - if (theLog == null) theLog = Logfile.getInstance(Configuration.getProperty("Home") + Configuration.getProperty("Module.Content.Logfile")); - } - - // - // methoden, um an ContentEntities zu kommen - - - public EntityList getContent(HashMap searchValues, boolean concat, int offset, EntityUsers user) - throws ModuleException { - - try { - - String whereClause ="", aField, aValue; - boolean first = true; - - Set set = searchValues.keySet(); - Iterator it = set.iterator(); - for (int i=0;i 0; + } + catch (Throwable t) { + return false; + } + } + + /** + * Unlocks an article. Forced (that is, without checking wether it's locked by + * the person that unlocks it) if necessary. + * + * @param anId The article number + * @param aUserId The user that unlocks + * @param aForce Should it e forced? + * @return true if successfull, false if not + */ + public boolean unlockArticle(String anId, String aUserId, boolean aForce) { + try { + String query = + "update content set to_locking_user=null" + + " where id = " + JDBCStringRoutines.escapeStringLiteral(anId); + + if (!aForce) + query = query + " and to_locking_user = "+JDBCStringRoutines.escapeStringLiteral(aUserId); + + return storage.executeUpdate(query) > 0; + } + catch (Throwable t) { + return false; + } + } + + /** + * Returns the id of the locking user of an article. null otherwise. + * + * @param anId + * @return + */ + public String queryArticleLock(String anId) { + try { + String result = storage.executeFreeSingleValueSql("select to_locking_user from content where id = " + JDBCStringRoutines.escapeStringLiteral(anId)); + + if (result!=null && !MirGlobal.isUserLoggedIn(result)) { + expireArticleLock(anId, result); + result = null; + } + + return result; + } + catch (Throwable t) { + return null; + } + } }