X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2FMir.java;h=ea6ddaa069644f9ef9e34ef3a42a5defc6a2d4fb;hb=96bf21dac3192e475bd470dcb8e9581393161895;hp=de3463684924912b34975fe16411f761efab6291;hpb=8d988270f53e4ee694c0e8bdc31dbd7cb69cd091;p=mir.git diff --git a/source/Mir.java b/source/Mir.java index de346368..ea6ddaa0 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,28 @@ import java.lang.reflect.Method; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.Locale; +import java.util.*; + +import mir.log.Log; /** - * Mir.java - main servlet, that dispatches to servletmodules + * Mir.java - main servlet, that dispatches to servletmodules + * + * @author $Author: bruno $ + * @version $Revision: 1.20 $ $Date: 2002/10/09 16:09:05 $ + * + * $Log: Mir.java,v $ + * Revision 1.20 2002/10/09 16:09:05 bruno + * contains only admin templates which should not be changed by users * - * @author RK 1999-2001 + * Revision 1.19 2002/09/01 22:05:47 mh + * Mir goes GPL + * + * 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 * */ @@ -48,8 +101,11 @@ public class Mir extends AbstractServlet { public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException, UnavailableException { + + long startTime = System.currentTimeMillis(); long sessionConnectTime = 0; + EntityUsers userEntity; String http = ""; // get the configration - this could conflict if 2 mirs are in the @@ -59,10 +115,15 @@ public class Mir extends AbstractServlet { } MirConfig.setServletName(getServletName()); + //*** test + // Log.info(this, "blalalala"); + session = req.getSession(true); + userEntity = (EntityUsers) session.getAttribute("login.uid"); if (req.getServerPort() == 443) http = "https"; else http = "http"; - res.setContentType("text/html"); + res.setContentType("text/html; charset=" + +MirConfig.getProp("Mir.DefaultEncoding")); String moduleName = req.getParameter("module"); checkLanguage(session, req); @@ -70,19 +131,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()); @@ -135,7 +200,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(); @@ -168,7 +232,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... @@ -285,7 +349,7 @@ public class Mir extends AbstractServlet { } private void _sendStartPage(HttpServletResponse res, HttpServletRequest req, PrintWriter out, EntityUsers userEntity) { - String startTemplate = "admin/start_admin.template"; + String startTemplate = "templates/admin/start_admin.template"; String sessionUrl = res.encodeURL(""); try { // merge with logged in user and messages @@ -294,15 +358,40 @@ 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()); } } public String getServletInfo() { - return "Mir 1.0 rev02 multilanguage"; + return "Mir "+MirConfig.getProp("Mir.Version"); } private void checkLanguage(HttpSession session, HttpServletRequest req) {