support for CAPTCHAs
[mir.git] / source / mircoders / servlet / ServletModuleAbuse.java
index 9d017b1..f2b8b0a 100755 (executable)
 
 package mircoders.servlet;
 
-import mir.log.LoggerWrapper;
-import mir.servlet.ServletModule;
+import mir.servlet.AdminServletModule;
 import mir.servlet.ServletModuleExc;
 import mir.servlet.ServletModuleFailure;
-import mir.storage.StorageObjectExc;
+import mir.storage.DatabaseExc;
 import mir.util.HTTPRequestParser;
 import mir.util.URLBuilder;
 import mircoders.abuse.FilterEngine;
@@ -44,8 +43,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.util.Map;
 
-public class ServletModuleAbuse extends ServletModule {
-  private static ServletModuleAbuse instance = new ServletModuleAbuse();
+public class ServletModuleAbuse extends AdminServletModule {
   private String editFilterTemplate;
   private String listFiltersTemplate;
   private String editFilterGroupTemplate;
@@ -53,18 +51,17 @@ public class ServletModuleAbuse extends ServletModule {
   private String mainTemplate;
   private String viewLogTemplate;
 
-  public static ServletModule getInstance() { return instance; }
-
-  private ServletModuleAbuse() {
-    logger = new LoggerWrapper("ServletModule.Abuse");
-    defaultAction = "showsettings";
+  public ServletModuleAbuse() {
+    editFilterTemplate = getConfiguration().getString("ServletModule.Abuse.EditFilter.Template");
+    listFiltersTemplate = getConfiguration().getString("ServletModule.Abuse.ListFilters.Template");
+    editFilterGroupTemplate = getConfiguration().getString("ServletModule.Abuse.EditFilterGroup.Template");
+    listFilterGroupsTemplate = getConfiguration().getString("ServletModule.Abuse.ListFilterGroups.Template");
+    viewLogTemplate = getConfiguration().getString("ServletModule.Abuse.ViewLog.Template");
+    mainTemplate = getConfiguration().getString("ServletModule.Abuse.Main.Template");
+  }
 
-    editFilterTemplate = configuration.getString("ServletModule.Abuse.EditFilter.Template");
-    listFiltersTemplate = configuration.getString("ServletModule.Abuse.ListFilters.Template");
-    editFilterGroupTemplate = configuration.getString("ServletModule.Abuse.EditFilterGroup.Template");
-    listFilterGroupsTemplate = configuration.getString("ServletModule.Abuse.ListFilterGroups.Template");
-    viewLogTemplate = configuration.getString("ServletModule.Abuse.ViewLog.Template");
-    mainTemplate = configuration.getString("ServletModule.Abuse.Main.Template");
+  public void defaultAction(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+    showsettings(aRequest, aResponse);
   }
 
   public void editfilter(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
@@ -143,7 +140,7 @@ public class ServletModuleAbuse extends ServletModule {
         logAdminUsage(aRequest, id, "filter modified");
       }
     }
-    catch (StorageObjectExc e) {
+    catch (DatabaseExc e) {
       throw new ServletModuleFailure(e);
     }
 
@@ -157,13 +154,54 @@ public class ServletModuleAbuse extends ServletModule {
     }
   }
 
+  public void movefilterup(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
+    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+    String id=requestParser.getParameter("id");
+    String groupid=requestParser.getParameter("groupid");
+
+    MirGlobal.abuse().getFilterEngine().moveFilterUp(groupid, id);
+    listfilters(aRequest, aResponse);
+  }
+
+
+  public void movefilterdown(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
+    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+    String id=requestParser.getParameter("id");
+    String groupid=requestParser.getParameter("groupid");
+
+    MirGlobal.abuse().getFilterEngine().moveFilterDown(groupid, id);
+    listfilters(aRequest, aResponse);
+  }
+
+  public void movefiltertop(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
+    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+    String id=requestParser.getParameter("id");
+    String groupid=requestParser.getParameter("groupid");
+
+    MirGlobal.abuse().getFilterEngine().moveFilterToTop(groupid, id);
+    listfilters(aRequest, aResponse);
+  }
+
+  public void movefilterbottom(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
+    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+    String id=requestParser.getParameter("id");
+    String groupid=requestParser.getParameter("groupid");
+
+    MirGlobal.abuse().getFilterEngine().moveFilterToBottom(groupid, id);
+    listfilters(aRequest, aResponse);
+  }
+
   public void deletefilter(HttpServletRequest aRequest, HttpServletResponse aResponse) {
     HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
 
     String id=requestParser.getParameter("id");
     String groupid=requestParser.getParameter("groupid");
     MirGlobal.abuse().getFilterEngine().deleteFilter(groupid, id);
-    MirGlobal.logAdminUsage(ServletHelper.getUser(aRequest), getOperationModuleName() + ":" + "filter:"+groupid+":"+id, "filter deleted");
+    MirGlobal.logAdminUsage(ServletHelper.getUser(aRequest), getName() + ":" + "filter:"+groupid+":"+id, "filter deleted");
 
     listfilters(aRequest, aResponse);
   }
@@ -174,8 +212,34 @@ public class ServletModuleAbuse extends ServletModule {
     String groupid=requestParser.getParameter("groupid");
     MirGlobal.abuse().getFilterEngine().deleteFilterGroup(groupid);
 
-    MirGlobal.logAdminUsage(ServletHelper.getUser(aRequest), getOperationModuleName() + ":" + "filtergroup:"+groupid, "filter group deleted");
+    MirGlobal.logAdminUsage(ServletHelper.getUser(aRequest), getName() + ":" + "filtergroup:"+groupid, "filter group deleted");
+
+    showfiltergroups(aRequest, aResponse);
+  }
+
+  public void movefiltergroupup(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+    String groupid=requestParser.getParameter("groupid");
+    MirGlobal.abuse().getFilterEngine().moveFilterGroupUp(groupid);
+
+    MirGlobal.logAdminUsage(ServletHelper.getUser(aRequest), getName() + ":" + "filtergroup:"+groupid, "filter group moved upwards");
+
+    showfiltergroups(aRequest, aResponse);
+  }
+
+  public void movefiltergroupdown(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+    HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+    String groupid=requestParser.getParameter("groupid");
+    MirGlobal.abuse().getFilterEngine().moveFilterGroupDown(groupid);
+
+    MirGlobal.logAdminUsage(ServletHelper.getUser(aRequest), getName() + ":" + "filtergroup:"+groupid, "filter group moved downwards");
+
+    showfiltergroups(aRequest, aResponse);
+  }
 
+  public void showfilterconfiguration(HttpServletRequest aRequest, HttpServletResponse aResponse) {
     showfiltergroups(aRequest, aResponse);
   }
 
@@ -244,7 +308,7 @@ public class ServletModuleAbuse extends ServletModule {
           MirGlobal.abuse().getFilterEngine().updateFilterGroup(id, name);
         }
     }
-    catch (StorageObjectExc e) {
+    catch (DatabaseExc e) {
       throw new ServletModuleFailure(e);
     }
 
@@ -285,7 +349,7 @@ public class ServletModuleAbuse extends ServletModule {
       responseData.put("commentactions", MirGlobal.abuse().getCommentActions());
 
       responseData.put("disableop", new Boolean(MirGlobal.abuse().getOpenPostingDisabled()));
-      responseData.put("passwordop", new Boolean(MirGlobal.abuse().getOpenPostingPassword()));
+      responseData.put("passwordop", new Boolean(MirGlobal.abuse().getRequireCaptcha()));
       responseData.put("logenabled", new Boolean(MirGlobal.abuse().getLogEnabled()));
       responseData.put("logsize", Integer.toString(MirGlobal.abuse().getLogSize()));
       responseData.put("usecookies", new Boolean(MirGlobal.abuse().getCookieOnBlock()));