- anti-abuse features created
[mir.git] / source / mircoders / servlet / ServletModuleAbuse.java
1 package mircoders.servlet;\r
2 \r
3 import java.util.Map;\r
4 \r
5 import javax.servlet.http.HttpServletRequest;\r
6 import javax.servlet.http.HttpServletResponse;\r
7 \r
8 import mir.log.LoggerWrapper;\r
9 import mir.servlet.ServletModule;\r
10 import mir.servlet.ServletModuleFailure;\r
11 import mir.util.URLBuilder;\r
12 import mir.util.HTTPRequestParser;\r
13 import mircoders.global.*;\r
14 \r
15 public class ServletModuleAbuse extends ServletModule {\r
16   private static ServletModuleAbuse instance = new ServletModuleAbuse();\r
17   public static ServletModule getInstance() { return instance; }\r
18 \r
19   private ServletModuleAbuse() {\r
20     logger = new LoggerWrapper("ServletModule.Abuse");\r
21     defaultAction = "showsettings";\r
22   }\r
23 \r
24   public void editfilter(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
25     HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);\r
26 \r
27     String type=requestParser.getParameterWithDefault("type", "");\r
28     String id=requestParser.getParameterWithDefault("id", "");\r
29     String expression=requestParser.getParameterWithDefault("expression", "");\r
30 \r
31     if (id.equals("")) {\r
32       MirGlobal.abuse().addFilter(type, expression);\r
33     }\r
34     else {\r
35       MirGlobal.abuse().setFilter(id, type, expression);\r
36     }\r
37 \r
38     MirGlobal.abuse().save();\r
39 \r
40     showfilters(aRequest, aResponse);\r
41   }\r
42 \r
43   public void deletefilter(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
44     HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);\r
45 \r
46     String id=requestParser.getParameterWithDefault("id", "");\r
47     MirGlobal.abuse().deleteFilter(id);\r
48 \r
49     MirGlobal.abuse().save();\r
50 \r
51     showfilters(aRequest, aResponse);\r
52   }\r
53 \r
54   public void showfilters(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
55     URLBuilder urlBuilder = new URLBuilder();\r
56 \r
57     try {\r
58       Map responseData = ServletHelper.makeGenerationData(getLocale(aRequest));\r
59 \r
60       urlBuilder.setValue("module", "Abuse");\r
61       urlBuilder.setValue("do", "showfilters");\r
62       responseData.put("thisurl", urlBuilder.getQuery());\r
63 \r
64       responseData.put("filters", MirGlobal.abuse().getFilters());\r
65       responseData.put("filtertypes", MirGlobal.abuse().getFilterTypes());\r
66 \r
67       ServletHelper.generateResponse(aResponse.getWriter(), responseData, "abuse.filters.template");\r
68     }\r
69     catch (Throwable e) {\r
70       throw new ServletModuleFailure(e);\r
71     }\r
72   }\r
73 \r
74 \r
75   public void showsettings(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
76     URLBuilder urlBuilder = new URLBuilder();\r
77 \r
78     try {\r
79       Map responseData = ServletHelper.makeGenerationData(getLocale(aRequest));\r
80 \r
81       urlBuilder.setValue("module", "Abuse");\r
82       urlBuilder.setValue("do", "showsettings");\r
83 \r
84       responseData.put("thisurl", urlBuilder.getQuery());\r
85 \r
86       responseData.put("articleactions", MirGlobal.abuse().getArticleActions());\r
87       responseData.put("commentactions", MirGlobal.abuse().getCommentActions());\r
88 \r
89       responseData.put("disableop", new Boolean(MirGlobal.abuse().getOpenPostingDisabled()));\r
90       responseData.put("passwordop", new Boolean(MirGlobal.abuse().getOpenPostingPassword()));\r
91       responseData.put("logenabled", new Boolean(MirGlobal.abuse().getLogEnabled()));\r
92       responseData.put("logsize", Integer.toString(MirGlobal.abuse().getLogSize()));\r
93       responseData.put("usecookies", new Boolean(MirGlobal.abuse().getCookieOnBlock()));\r
94       responseData.put("articleaction", MirGlobal.abuse().getArticleBlockAction());\r
95       responseData.put("commentaction", MirGlobal.abuse().getCommentBlockAction());\r
96 \r
97       ServletHelper.generateResponse(aResponse.getWriter(), responseData, "abuse.template");\r
98     }\r
99     catch (Throwable e) {\r
100       throw new ServletModuleFailure(e);\r
101     }\r
102   }\r
103 \r
104   public void savesettings(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
105     try {\r
106       HTTPRequestParser parser = new HTTPRequestParser(aRequest);\r
107 \r
108       MirGlobal.abuse().setOpenPostingDisabled(parser.getParameterWithDefault("disableop", "").equals("1"));\r
109       MirGlobal.abuse().setOpenPostingPassword(parser.getParameterWithDefault("passwordop", "").equals("1"));\r
110       MirGlobal.abuse().setLogEnabled(parser.getParameterWithDefault("logenabled", "").equals("1"));\r
111 \r
112       try {\r
113         MirGlobal.abuse().setLogSize(parser.getIntegerWithDefault("logsize", MirGlobal.abuse().getLogSize()));\r
114       }\r
115       catch (Throwable t) {\r
116       }\r
117 \r
118       MirGlobal.abuse().setCookieOnBlock(parser.getParameterWithDefault("usecookies", "").equals("1"));\r
119 \r
120       MirGlobal.abuse().setArticleBlockAction(parser.getParameter("articleaction"));\r
121       MirGlobal.abuse().setCommentBlockAction(parser.getParameter("commentaction"));\r
122 \r
123       MirGlobal.abuse().save();\r
124 \r
125       showsettings(aRequest, aResponse);\r
126     }\r
127     catch (Throwable e) {\r
128       throw new ServletModuleFailure(e);\r
129     }\r
130   }\r
131 \r
132   public void showlog(HttpServletRequest aRequest, HttpServletResponse aResponse) {\r
133     URLBuilder urlBuilder = new URLBuilder();\r
134     int count;\r
135 \r
136     try {\r
137       Map responseData = ServletHelper.makeGenerationData(getLocale(aRequest));\r
138       urlBuilder.setValue("module", "Abuse");\r
139       urlBuilder.setValue("do", "showlog");\r
140       responseData.put("thisurl", urlBuilder.getQuery());\r
141 \r
142       responseData.put("log", MirGlobal.abuse().getLog());\r
143 \r
144       ServletHelper.generateResponse(aResponse.getWriter(), responseData, "abuse.log.template");\r
145     }\r
146     catch (Throwable e) {\r
147       throw new ServletModuleFailure(e);\r
148     }\r
149   }\r
150 }