-import freemarker.template.SimpleList;
+/*
+ * 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.SimpleHash;
import freemarker.template.SimpleScalar;
import mir.misc.HTMLParseException;
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;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Locale;
-import java.util.*;
/**
* Mir.java - main servlet, that dispatches to servletmodules
*
* @author $Author: mh $
- * @version $Revision: 1.18 $ $Date: 2002/08/25 19:00:06 $
- *
- * $Log: Mir.java,v $
- * 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
+ * @version $Revision: 1.17.2.3 $ $Date: 2002/12/06 07:14:45 $
*
*/
private static ModuleMessage messageModule = null;
private final static HashMap servletModuleInstanceHash = new HashMap();
+ private static boolean nameSet = false;
+
public HttpSession session;
public void doGet(HttpServletRequest req, HttpServletResponse res)
long startTime = System.currentTimeMillis();
long sessionConnectTime = 0;
- EntityUsers userEntity;
String http = "";
// get the configration - this could conflict if 2 mirs are in the
if (getServletContext().getAttribute("mir.confed") == null) {
getConfig(req);
}
- MirConfig.setServletName(getServletName());
+
+ if (!nameSet) {
+ MirConfig.setAdminServletName(getServletName());
+ nameSet = true;
+ }
session = req.getSession(true);
- userEntity = (EntityUsers) session.getAttribute("login.uid");
if (req.getServerPort() == 443) http = "https"; else http = "http";
+
+ //nothing in Mir can or should be cached as it's all dynamic...
+ //
+ //this needs to be done here and not per page (via meta tags) as some
+ //browsers have problems w/ it per-page -mh
+ res.setHeader("Pragma", "no-cache");
+ res.setDateHeader("Expires", 0);
+ res.setHeader("Cache-Control", "no-cache");
res.setContentType("text/html; charset="
+MirConfig.getProp("Mir.DefaultEncoding"));
String moduleName = req.getParameter("module");
/** @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")) || (userEntity==null)) {
+ if (moduleName != null && moduleName.equals("login")) {
String user = req.getParameter("login");
String passwd = req.getParameter("password");
theLog.printDebugInfo("--login: evaluating for user: " + user);
- userEntity = allowedUser(user, passwd);
+ EntityUsers userEntity = allowedUser(user, passwd);
if (userEntity == null) {
// login failed: redirecting to login
theLog.printWarning("--login: failed!");
_sendLoginPage(res, req, res.getWriter());
return;
}
- else if (moduleName!=null && moduleName.equals("login")) {
+ else {
// login successful
theLog.printInfo("--login: successful! setting uid: " + userEntity.getId());
}
// Check if authed!
+ EntityUsers userEntity = (EntityUsers) session.getAttribute("login.uid");
if (userEntity == null) {
// redirect to loginpage
String redirectString = req.getRequestURI();
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());
}
}