--- /dev/null
+package mircoders.servlet;\r
+\r
+import java.util.Map;\r
+\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.ServletModuleFailure;\r
+import mir.util.URLBuilder;\r
+import mir.util.HTTPRequestParser;\r
+import mircoders.global.*;\r
+\r
+public class ServletModuleAbuse extends ServletModule {\r
+ private static ServletModuleAbuse instance = new ServletModuleAbuse();\r
+ public static ServletModule getInstance() { return instance; }\r
+\r
+ private ServletModuleAbuse() {\r
+ logger = new LoggerWrapper("ServletModule.Abuse");\r
+ defaultAction = "showsettings";\r
+ }\r
+\r
+ public void editfilter(HttpServletRequest aRequest, HttpServletResponse aResponse) {\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
+\r
+ if (id.equals("")) {\r
+ MirGlobal.abuse().addFilter(type, expression);\r
+ }\r
+ else {\r
+ MirGlobal.abuse().setFilter(id, type, expression);\r
+ }\r
+\r
+ MirGlobal.abuse().save();\r
+\r
+ showfilters(aRequest, aResponse);\r
+ }\r
+\r
+ public void deletefilter(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
+ HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);\r
+\r
+ String id=requestParser.getParameterWithDefault("id", "");\r
+ MirGlobal.abuse().deleteFilter(id);\r
+\r
+ MirGlobal.abuse().save();\r
+\r
+ showfilters(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(getLocale(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
+ responseData.put("filtertypes", MirGlobal.abuse().getFilterTypes());\r
+\r
+ ServletHelper.generateResponse(aResponse.getWriter(), responseData, "abuse.filters.template");\r
+ }\r
+ catch (Throwable e) {\r
+ throw new ServletModuleFailure(e);\r
+ }\r
+ }\r
+\r
+\r
+ public void showsettings(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
+ URLBuilder urlBuilder = new URLBuilder();\r
+\r
+ try {\r
+ Map responseData = ServletHelper.makeGenerationData(getLocale(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, "abuse.template");\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
+\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(getLocale(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, "abuse.log.template");\r
+ }\r
+ catch (Throwable e) {\r
+ throw new ServletModuleFailure(e);\r
+ }\r
+ }\r
+}
\ No newline at end of file