1.1 restoration
[mir.git] / source / mircoders / servlet / ServletModuleAbuse.java
index 836a377..e026be6 100755 (executable)
-/*\r
- * Copyright (C) 2001, 2002 The Mir-coders group\r
- *\r
- * This file is part of Mir.\r
- *\r
- * Mir is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- *\r
- * Mir is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
- *\r
- * You should have received a copy of the GNU General Public License\r
- * along with Mir; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
- *\r
- * In addition, as a special exception, The Mir-coders gives permission to link\r
- * the code of this program with  any library licensed under the Apache Software License,\r
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library\r
- * (or with modified versions of the above that use the same license as the above),\r
- * and distribute linked combinations including the two.  You must obey the\r
- * GNU General Public License in all respects for all of the code used other than\r
- * the above mentioned libraries.  If you modify this file, you may extend this\r
- * exception to your version of the file, but you are not obligated to do so.\r
- * If you do not wish to do so, delete this exception statement from your version.\r
- */\r
-\r
-package mircoders.servlet;\r
-\r
-import java.util.Locale;\r
-import java.util.Map;\r
-import javax.servlet.http.HttpServletRequest;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import mir.log.LoggerWrapper;\r
-import mir.servlet.ServletModule;\r
-import mir.servlet.ServletModuleExc;\r
-import mir.servlet.ServletModuleFailure;\r
-import mir.util.HTTPRequestParser;\r
-import mir.util.URLBuilder;\r
-import mircoders.global.Abuse;\r
-import mircoders.global.MirGlobal;\r
-\r
-public class ServletModuleAbuse extends ServletModule {\r
-  private static ServletModuleAbuse instance = new ServletModuleAbuse();\r
-  private String editFilterTemplate;\r
-  private String listFiltersTemplate;\r
-  private String mainTemplate;\r
-  private String viewLogTemplate;\r
-\r
-  public static ServletModule getInstance() { return instance; }\r
-\r
-  private ServletModuleAbuse() {\r
-    logger = new LoggerWrapper("ServletModule.Abuse");\r
-    defaultAction = "showsettings";\r
-\r
-    editFilterTemplate = configuration.getString("ServletModule.Abuse.EditFilter.Template");\r
-    listFiltersTemplate = configuration.getString("ServletModule.Abuse.ListFilters.Template");\r
-    viewLogTemplate = configuration.getString("ServletModule.Abuse.ViewLog.Template");\r
-    mainTemplate = configuration.getString("ServletModule.Abuse.Main.Template");\r
-  }\r
-\r
-  public void edit(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {\r
-    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);\r
-    String id=requestParser.getParameterWithDefault("id", "");\r
-\r
-    if (id.equals("")) {\r
-      editfilter(aRequest, aResponse, "", "", "", "", "", "", "");\r
-    }\r
-    else {\r
-      Abuse.FilterRule filter = MirGlobal.abuse().getFilter(id);\r
-      if (filter==null)\r
-        throw new ServletModuleExc("Filter not found");\r
-\r
-      editfilter(aRequest, aResponse, filter.getId(), filter.getType(), filter.getExpression(), filter.getComments(), filter.getCommentAction(), filter.getArticleAction(), "");\r
-    }\r
-  }\r
-\r
-  public void editfilter(HttpServletRequest aRequest, HttpServletResponse aResponse,\r
-        String anId, String aType, String anExpression, String aComments,\r
-        String aCommentAction, String anArticleAction, String anErrorMessage) throws ServletModuleExc {\r
-    try {\r
-      Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)});\r
-\r
-      responseData.put("id", anId);\r
-      responseData.put("type", aType);\r
-      responseData.put("expression", anExpression);\r
-      responseData.put("comments", aComments);\r
-      responseData.put("articleaction", anArticleAction);\r
-      responseData.put("commentaction", aCommentAction);\r
-      responseData.put("errormessage", anErrorMessage);\r
-\r
-      responseData.put("articleactions", MirGlobal.abuse().getArticleActions());\r
-      responseData.put("commentactions", MirGlobal.abuse().getCommentActions());\r
-      responseData.put("filtertypes", MirGlobal.abuse().getFilterTypes());\r
-\r
-      ServletHelper.generateResponse(aResponse.getWriter(), responseData, editFilterTemplate);\r
-    }\r
-    catch (Throwable e) {\r
-      throw new ServletModuleFailure(e);\r
-    }\r
-  }\r
-\r
-  public void updatefilter(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {\r
-    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);\r
-\r
-    String type=requestParser.getParameterWithDefault("type", "");\r
-    String id=requestParser.getParameterWithDefault("id", "");\r
-    String expression=requestParser.getParameterWithDefault("expression", "");\r
-    String commentaction=requestParser.getParameterWithDefault("commentaction", "");\r
-    String articleaction=requestParser.getParameterWithDefault("articleaction", "");\r
-    String comments=requestParser.getParameterWithDefault("comments", "");\r
-\r
-    String errorMessage;\r
-\r
-    String userName = ServletHelper.getUserName(aRequest);\r
-\r
-    if (id.equals("")) {\r
-      errorMessage = MirGlobal.abuse().addFilter(type, expression,comments, commentaction, articleaction);\r
-      logAdminUsage(aRequest, "?", "object added");\r
-    }\r
-    else {\r
-      errorMessage = MirGlobal.abuse().setFilter(id, type, expression, comments, commentaction, articleaction);\r
-      logAdminUsage(aRequest, id, "object modified");\r
-    }\r
-\r
-    if (errorMessage!=null) {\r
-      editfilter(aRequest, aResponse, id, type, expression, comments, commentaction, articleaction, errorMessage);\r
-    }\r
-    else {\r
-      MirGlobal.abuse().save();\r
-      showfilters(aRequest, aResponse);\r
-    }\r
-  }\r
-\r
-  public void delete(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
-    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);\r
-\r
-    String id=requestParser.getParameterWithDefault("id", "");\r
-    MirGlobal.abuse().deleteFilter(id);\r
-    logAdminUsage(aRequest, id, "object deleted");\r
-\r
-    MirGlobal.abuse().save();\r
-\r
-    showfilters(aRequest, aResponse);\r
-  }\r
-\r
-  public void moveup(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
-    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);\r
-\r
-    String id=requestParser.getParameterWithDefault("id", "");\r
-    MirGlobal.abuse().moveFilterUp(id);\r
-\r
-    MirGlobal.abuse().save();\r
-    logAdminUsage(aRequest, id, "object moved upwards");\r
-\r
-    showfilters(aRequest, aResponse);\r
-  }\r
-\r
-  public void movedown(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
-    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);\r
-\r
-    String id=requestParser.getParameterWithDefault("id", "");\r
-    MirGlobal.abuse().moveFilterDown(id);\r
-    logAdminUsage(aRequest, id, "object moved downwards");\r
-\r
-    MirGlobal.abuse().save();\r
-\r
-    showfilters(aRequest, aResponse);\r
-  }\r
-\r
-  public void add(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {\r
-    editfilter(aRequest, aResponse, "", "", "", "", "", "", "");\r
-  }\r
-\r
-  public void showfilters(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
-    URLBuilder urlBuilder = new URLBuilder();\r
-\r
-    try {\r
-      Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)});\r
-\r
-      urlBuilder.setValue("module", "Abuse");\r
-      urlBuilder.setValue("do", "showfilters");\r
-      responseData.put("thisurl", urlBuilder.getQuery());\r
-\r
-      responseData.put("filters", MirGlobal.abuse().getFilters());\r
-\r
-      ServletHelper.generateResponse(aResponse.getWriter(), responseData, listFiltersTemplate);\r
-    }\r
-    catch (Throwable e) {\r
-      throw new ServletModuleFailure(e);\r
-    }\r
-  }\r
-\r
-  public void showsettings(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
-    URLBuilder urlBuilder = new URLBuilder();\r
-\r
-    try {\r
-      Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)});\r
-\r
-      urlBuilder.setValue("module", "Abuse");\r
-      urlBuilder.setValue("do", "showsettings");\r
-\r
-      responseData.put("thisurl", urlBuilder.getQuery());\r
-\r
-      responseData.put("articleactions", MirGlobal.abuse().getArticleActions());\r
-      responseData.put("commentactions", MirGlobal.abuse().getCommentActions());\r
-\r
-      responseData.put("disableop", new Boolean(MirGlobal.abuse().getOpenPostingDisabled()));\r
-      responseData.put("passwordop", new Boolean(MirGlobal.abuse().getOpenPostingPassword()));\r
-      responseData.put("logenabled", new Boolean(MirGlobal.abuse().getLogEnabled()));\r
-      responseData.put("logsize", Integer.toString(MirGlobal.abuse().getLogSize()));\r
-      responseData.put("usecookies", new Boolean(MirGlobal.abuse().getCookieOnBlock()));\r
-      responseData.put("articleaction", MirGlobal.abuse().getArticleBlockAction());\r
-      responseData.put("commentaction", MirGlobal.abuse().getCommentBlockAction());\r
-\r
-      ServletHelper.generateResponse(aResponse.getWriter(), responseData, mainTemplate);\r
-    }\r
-    catch (Throwable e) {\r
-      throw new ServletModuleFailure(e);\r
-    }\r
-  }\r
-\r
-  public void savesettings(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
-    try {\r
-      HTTPRequestParser parser = new HTTPRequestParser(aRequest);\r
-\r
-      MirGlobal.abuse().setOpenPostingDisabled(parser.getParameterWithDefault("disableop", "").equals("1"));\r
-      MirGlobal.abuse().setOpenPostingPassword(parser.getParameterWithDefault("passwordop", "").equals("1"));\r
-      MirGlobal.abuse().setLogEnabled(parser.getParameterWithDefault("logenabled", "").equals("1"));\r
-\r
-      try {\r
-        MirGlobal.abuse().setLogSize(parser.getIntegerWithDefault("logsize", MirGlobal.abuse().getLogSize()));\r
-      }\r
-      catch (Throwable t) {\r
-      }\r
-\r
-      MirGlobal.abuse().setCookieOnBlock(parser.getParameterWithDefault("usecookies", "").equals("1"));\r
-\r
-      MirGlobal.abuse().setArticleBlockAction(parser.getParameter("articleaction"));\r
-      MirGlobal.abuse().setCommentBlockAction(parser.getParameter("commentaction"));\r
-\r
-      MirGlobal.abuse().save();\r
-      logAdminUsage(aRequest, "settings", "object modified");\r
-\r
-      showsettings(aRequest, aResponse);\r
-    }\r
-    catch (Throwable e) {\r
-      throw new ServletModuleFailure(e);\r
-    }\r
-  }\r
-\r
-  public void showlog(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
-    URLBuilder urlBuilder = new URLBuilder();\r
-    int count;\r
-\r
-    try {\r
-      Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)});\r
-      urlBuilder.setValue("module", "Abuse");\r
-      urlBuilder.setValue("do", "showlog");\r
-      responseData.put("thisurl", urlBuilder.getQuery());\r
-\r
-      responseData.put("log", MirGlobal.abuse().getLog());\r
-\r
-      ServletHelper.generateResponse(aResponse.getWriter(), responseData, viewLogTemplate);\r
-    }\r
-    catch (Throwable e) {\r
-      throw new ServletModuleFailure(e);\r
-    }\r
-  }\r
+/*
+ * 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.
+ */
+
+package mircoders.servlet;
+
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import mir.log.LoggerWrapper;
+import mir.servlet.ServletModule;
+import mir.servlet.ServletModuleExc;
+import mir.servlet.ServletModuleFailure;
+import mir.util.HTTPRequestParser;
+import mir.util.URLBuilder;
+import mircoders.global.Abuse;
+import mircoders.global.MirGlobal;
+
+public class ServletModuleAbuse extends ServletModule {
+  private static ServletModuleAbuse instance = new ServletModuleAbuse();
+  private String editFilterTemplate;
+  private String listFiltersTemplate;
+  private String mainTemplate;
+  private String viewLogTemplate;
+
+  public static ServletModule getInstance() { return instance; }
+
+  private ServletModuleAbuse() {
+    logger = new LoggerWrapper("ServletModule.Abuse");
+    defaultAction = "showsettings";
+
+    editFilterTemplate = configuration.getString("ServletModule.Abuse.EditFilter.Template");
+    listFiltersTemplate = configuration.getString("ServletModule.Abuse.ListFilters.Template");
+    viewLogTemplate = configuration.getString("ServletModule.Abuse.ViewLog.Template");
+    mainTemplate = configuration.getString("ServletModule.Abuse.Main.Template");
+  }
+
+  public void edit(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
+    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+    String id=requestParser.getParameterWithDefault("id", "");
+
+    if (id.equals("")) {
+      editfilter(aRequest, aResponse, "", "", "", "", "", "", "");
+    }
+    else {
+      Abuse.FilterRule filter = MirGlobal.abuse().getFilter(id);
+      if (filter==null)
+        throw new ServletModuleExc("Filter not found");
+
+      editfilter(aRequest, aResponse, filter.getId(), filter.getType(), filter.getExpression(), filter.getComments(), filter.getCommentAction(), filter.getArticleAction(), "");
+    }
+  }
+
+  public void editfilter(HttpServletRequest aRequest, HttpServletResponse aResponse,
+        String anId, String aType, String anExpression, String aComments,
+        String aCommentAction, String anArticleAction, String anErrorMessage) throws ServletModuleExc {
+    try {
+      Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, getLocales(aRequest));
+
+      responseData.put("id", anId);
+      responseData.put("type", aType);
+      responseData.put("expression", anExpression);
+      responseData.put("comments", aComments);
+      responseData.put("articleaction", anArticleAction);
+      responseData.put("commentaction", aCommentAction);
+      responseData.put("errormessage", anErrorMessage);
+
+      responseData.put("articleactions", MirGlobal.abuse().getArticleActions());
+      responseData.put("commentactions", MirGlobal.abuse().getCommentActions());
+      responseData.put("filtertypes", MirGlobal.abuse().getFilterTypes());
+
+      ServletHelper.generateResponse(aResponse.getWriter(), responseData, editFilterTemplate);
+    }
+    catch (Throwable e) {
+      throw new ServletModuleFailure(e);
+    }
+  }
+
+  public void updatefilter(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
+    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+    String type=requestParser.getParameterWithDefault("type", "");
+    String id=requestParser.getParameterWithDefault("id", "");
+    String expression=requestParser.getParameterWithDefault("expression", "");
+    String commentaction=requestParser.getParameterWithDefault("commentaction", "");
+    String articleaction=requestParser.getParameterWithDefault("articleaction", "");
+    String comments=requestParser.getParameterWithDefault("comments", "");
+
+    String errorMessage;
+
+    if (id.equals("")) {
+      errorMessage = MirGlobal.abuse().addFilter(type, expression,comments, commentaction, articleaction);
+      logAdminUsage(aRequest, "?", "object added");
+    }
+    else {
+      errorMessage = MirGlobal.abuse().setFilter(id, type, expression, comments, commentaction, articleaction);
+      logAdminUsage(aRequest, id, "object modified");
+    }
+
+    if (errorMessage!=null) {
+      editfilter(aRequest, aResponse, id, type, expression, comments, commentaction, articleaction, errorMessage);
+    }
+    else {
+      MirGlobal.abuse().save();
+      showfilters(aRequest, aResponse);
+    }
+  }
+
+  public void delete(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+    String id=requestParser.getParameterWithDefault("id", "");
+    MirGlobal.abuse().deleteFilter(id);
+    logAdminUsage(aRequest, id, "object deleted");
+
+    MirGlobal.abuse().save();
+
+    showfilters(aRequest, aResponse);
+  }
+
+  public void moveup(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+    String id=requestParser.getParameterWithDefault("id", "");
+    MirGlobal.abuse().moveFilterUp(id);
+
+    MirGlobal.abuse().save();
+    logAdminUsage(aRequest, id, "object moved upwards");
+
+    showfilters(aRequest, aResponse);
+  }
+
+  public void movedown(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+    String id=requestParser.getParameterWithDefault("id", "");
+    MirGlobal.abuse().moveFilterDown(id);
+    logAdminUsage(aRequest, id, "object moved downwards");
+
+    MirGlobal.abuse().save();
+
+    showfilters(aRequest, aResponse);
+  }
+
+  public void movetop(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+    String id=requestParser.getParameterWithDefault("id", "");
+    MirGlobal.abuse().moveFilterToTop(id);
+
+    MirGlobal.abuse().save();
+    logAdminUsage(aRequest, id, "object moved to the top");
+
+    showfilters(aRequest, aResponse);
+  }
+
+  public void movebottom(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+    String id=requestParser.getParameterWithDefault("id", "");
+    MirGlobal.abuse().moveFilterToBottom(id);
+
+    MirGlobal.abuse().save();
+    logAdminUsage(aRequest, id, "object moved to the bottom");
+
+    showfilters(aRequest, aResponse);
+  }
+
+  public void add(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
+    editfilter(aRequest, aResponse, "", "", "", "", "", "", "");
+  }
+
+  public void showfilters(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+    URLBuilder urlBuilder = new URLBuilder();
+
+    try {
+      Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, getLocales(aRequest));
+
+      urlBuilder.setValue("module", "Abuse");
+      urlBuilder.setValue("do", "showfilters");
+      responseData.put("thisurl", urlBuilder.getQuery());
+
+      responseData.put("filters", MirGlobal.abuse().getFilters());
+
+      ServletHelper.generateResponse(aResponse.getWriter(), responseData, listFiltersTemplate);
+    }
+    catch (Throwable e) {
+      throw new ServletModuleFailure(e);
+    }
+  }
+
+  public void showsettings(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+    URLBuilder urlBuilder = new URLBuilder();
+
+    try {
+      Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, getLocales(aRequest));
+
+      urlBuilder.setValue("module", "Abuse");
+      urlBuilder.setValue("do", "showsettings");
+
+      responseData.put("thisurl", urlBuilder.getQuery());
+
+      responseData.put("articleactions", MirGlobal.abuse().getArticleActions());
+      responseData.put("commentactions", MirGlobal.abuse().getCommentActions());
+
+      responseData.put("disableop", new Boolean(MirGlobal.abuse().getOpenPostingDisabled()));
+      responseData.put("passwordop", new Boolean(MirGlobal.abuse().getOpenPostingPassword()));
+      responseData.put("logenabled", new Boolean(MirGlobal.abuse().getLogEnabled()));
+      responseData.put("logsize", Integer.toString(MirGlobal.abuse().getLogSize()));
+      responseData.put("usecookies", new Boolean(MirGlobal.abuse().getCookieOnBlock()));
+      responseData.put("articleaction", MirGlobal.abuse().getArticleBlockAction());
+      responseData.put("commentaction", MirGlobal.abuse().getCommentBlockAction());
+
+      ServletHelper.generateResponse(aResponse.getWriter(), responseData, mainTemplate);
+    }
+    catch (Throwable e) {
+      throw new ServletModuleFailure(e);
+    }
+  }
+
+  public void savesettings(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+    try {
+      HTTPRequestParser parser = new HTTPRequestParser(aRequest);
+
+      MirGlobal.abuse().setOpenPostingDisabled(parser.getParameterWithDefault("disableop", "").equals("1"));
+      MirGlobal.abuse().setOpenPostingPassword(parser.getParameterWithDefault("passwordop", "").equals("1"));
+      MirGlobal.abuse().setLogEnabled(parser.getParameterWithDefault("logenabled", "").equals("1"));
+
+      try {
+        MirGlobal.abuse().setLogSize(parser.getIntegerWithDefault("logsize", MirGlobal.abuse().getLogSize()));
+      }
+      catch (Throwable t) {
+      }
+
+      MirGlobal.abuse().setCookieOnBlock(parser.getParameterWithDefault("usecookies", "").equals("1"));
+
+      MirGlobal.abuse().setArticleBlockAction(parser.getParameter("articleaction"));
+      MirGlobal.abuse().setCommentBlockAction(parser.getParameter("commentaction"));
+
+      MirGlobal.abuse().save();
+      logAdminUsage(aRequest, "settings", "object modified");
+
+      showsettings(aRequest, aResponse);
+    }
+    catch (Throwable e) {
+      throw new ServletModuleFailure(e);
+    }
+  }
+
+  public void showlog(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+    URLBuilder urlBuilder = new URLBuilder();
+
+    try {
+      Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, getLocales(aRequest));
+      urlBuilder.setValue("module", "Abuse");
+      urlBuilder.setValue("do", "showlog");
+      responseData.put("thisurl", urlBuilder.getQuery());
+
+      responseData.put("log", MirGlobal.abuse().getLog());
+
+      ServletHelper.generateResponse(aResponse.getWriter(), responseData, viewLogTemplate);
+    }
+    catch (Throwable e) {
+      throw new ServletModuleFailure(e);
+    }
+  }
 }
\ No newline at end of file