X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=source%2FMir.java;h=6f75be3e8e4091ccb428cd749e1d011883f91e16;hb=5757f37a1bc4e2dcad3054a66611b1a02fb7d8b3;hp=486e4efdb67f60dd482d892089078c3b22118e12;hpb=cf8cb5c3fc2602ecde7d53cd7bf7dc30eac6a6d1;p=mir.git diff --git a/source/Mir.java b/source/Mir.java index 486e4efd..6f75be3e 100755 --- a/source/Mir.java +++ b/source/Mir.java @@ -1,4 +1,4 @@ - +import freemarker.template.SimpleList; import freemarker.template.SimpleHash; import freemarker.template.SimpleScalar; import mir.misc.HTMLParseException; @@ -6,9 +6,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,6 +28,7 @@ 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 @@ -50,15 +56,18 @@ public class Mir extends AbstractServlet { long startTime = System.currentTimeMillis(); long sessionConnectTime = 0; + EntityUsers userEntity; String http = ""; - // get the configration + // get the configration - this could conflict if 2 mirs are in the + // VM maybe? to be checked. -mh if (getServletContext().getAttribute("mir.confed") == null) { getConfig(req); } 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"); @@ -69,19 +78,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()); @@ -134,7 +147,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(); @@ -293,9 +305,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()); } }