X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=source%2FMir.java;h=dd73556e38ac84af3b3d1b6bb8a299d13b9e2c66;hb=ec539baf34c85073f439b02018120a08994d2d35;hp=f6c70f403a9a4bba6ce96f928e4311ce4113cd9f;hpb=5063b0ed3dbec55afea43d9f5c2ff02bf0cf413e;p=mir.git diff --git a/source/Mir.java b/source/Mir.java index f6c70f40..dd73556e 100755 --- a/source/Mir.java +++ b/source/Mir.java @@ -1,4 +1,35 @@ +/* + * 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 the com.oreilly.servlet library, 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 freemarker.template.SimpleList; import freemarker.template.SimpleHash; import freemarker.template.SimpleScalar; import mir.misc.HTMLParseException; @@ -6,9 +37,14 @@ import mir.misc.HTMLTemplateProcessor; import mir.misc.MirConfig; import mir.misc.StringUtil; import mir.servlet.*; +import mir.producer.*; + +import mircoders.global.*; +import mircoders.localizer.*; import mircoders.entity.EntityUsers; import mircoders.module.ModuleMessage; import mircoders.module.ModuleUsers; +import mircoders.storage.DatabaseArticleType; import mircoders.storage.DatabaseMessages; import mircoders.storage.DatabaseUsers; @@ -23,11 +59,23 @@ import java.lang.reflect.Method; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.Locale; +import java.util.*; /** - * Mir.java - main servlet, that dispatches to servletmodules + * Mir.java - main servlet, that dispatches to servletmodules + * + * @author $Author: mh $ + * @version $Revision: 1.19 $ $Date: 2002/09/01 22:05:47 $ + * + * $Log: Mir.java,v $ + * Revision 1.19 2002/09/01 22:05:47 mh + * Mir goes GPL * - * @author RK 1999-2001 + * Revision 1.18 2002/08/25 19:00:06 mh + * merge of localization branch into HEAD. mh and zap + * + * Revision 1.17 2002/07/21 22:27:39 mh + * make the user error msg look nicer * */ @@ -50,6 +98,7 @@ public class Mir extends AbstractServlet { long startTime = System.currentTimeMillis(); long sessionConnectTime = 0; + EntityUsers userEntity; String http = ""; // get the configration - this could conflict if 2 mirs are in the @@ -60,6 +109,7 @@ public class Mir extends AbstractServlet { MirConfig.setServletName(getServletName()); session = req.getSession(true); + userEntity = (EntityUsers) session.getAttribute("login.uid"); if (req.getServerPort() == 443) http = "https"; else http = "http"; res.setContentType("text/html; charset=" @@ -71,19 +121,23 @@ public class Mir extends AbstractServlet { /** @todo for cleanup and readability this should be moved to * method loginIfNecessary() */ + if (moduleName!=null && moduleName.equals("direct")) { + //... + } + // Authentifizierung - if (moduleName != null && moduleName.equals("login")) { + if ((moduleName != null && moduleName.equals("login")) || (userEntity==null)) { String user = req.getParameter("login"); String passwd = req.getParameter("password"); theLog.printDebugInfo("--login: evaluating for user: " + user); - EntityUsers userEntity = allowedUser(user, passwd); + userEntity = allowedUser(user, passwd); if (userEntity == null) { // login failed: redirecting to login theLog.printWarning("--login: failed!"); _sendLoginPage(res, req, res.getWriter()); return; } - else { + else if (moduleName!=null && moduleName.equals("login")) { // login successful theLog.printInfo("--login: successful! setting uid: " + userEntity.getId()); @@ -136,7 +190,6 @@ public class Mir extends AbstractServlet { } // Check if authed! - EntityUsers userEntity = (EntityUsers) session.getAttribute("login.uid"); if (userEntity == null) { // redirect to loginpage String redirectString = req.getRequestURI(); @@ -169,7 +222,7 @@ public class Mir extends AbstractServlet { "ServletException in Module " + moduleName + " -- " + e.toString()); } catch (ServletModuleUserException e) { - handleUserError(req, res, res.getWriter(), "User error" + e.toString()); + handleUserError(req, res, res.getWriter(), e.getMsg()); } // timing... @@ -295,9 +348,34 @@ public class Mir extends AbstractServlet { mergeData.put("login_user", userEntity); if (messageModule == null) messageModule = new ModuleMessage(DatabaseMessages.getInstance()); mergeData.put("messages", messageModule.getByWhereClause(null, "webdb_create desc", 0, 10)); + + mergeData.put("articletypes", DatabaseArticleType.getInstance().selectByWhereClause("", "id", 0, 20)); + + SimpleList producersData = new SimpleList(); + Iterator i = MirGlobal.localizer().producers().factories().entrySet().iterator(); + while (i.hasNext()) { + Map.Entry entry = (Map.Entry) i.next(); + + SimpleList producerVerbs = new SimpleList(); + Iterator j = ((ProducerFactory) entry.getValue()).verbs(); + while (j.hasNext()) { + producerVerbs.add((String) j.next()); + } + + SimpleHash producerData = new SimpleHash(); + producerData.put("key", (String) entry.getKey()); + producerData.put("verbs", producerVerbs); + + producersData.add(producerData); + } + mergeData.put("producers", producersData); + + + HTMLTemplateProcessor.process(res, startTemplate, mergeData, out, getLocale(req)); } catch (Exception e) { + e.printStackTrace(System.out); handleError(req, res, out, "error while trying to send startpage. " + e.toString()); } }