X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fservlet%2FServletModuleAbuse.java;h=e026be60b16be71d38820fed3ff2e0bef3cd2330;hb=63e0ee1fb8038eb6d8f0190cf38c3b3ab2727216;hp=8ab8aece78e658f82a863978ac0a883d1fdf8c94;hpb=12e4a04e3d6b16aa91029f125997d38a1f05aeb5;p=mir.git diff --git a/source/mircoders/servlet/ServletModuleAbuse.java b/source/mircoders/servlet/ServletModuleAbuse.java index 8ab8aece..e026be60 100755 --- a/source/mircoders/servlet/ServletModuleAbuse.java +++ b/source/mircoders/servlet/ServletModuleAbuse.java @@ -38,76 +38,191 @@ 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 editfilter(HttpServletRequest aRequest, HttpServletResponse aResponse) { + 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("")) { - MirGlobal.abuse().addFilter(type, expression); + errorMessage = MirGlobal.abuse().addFilter(type, expression,comments, commentaction, articleaction); + logAdminUsage(aRequest, "?", "object added"); } else { - MirGlobal.abuse().setFilter(id, type, expression); + 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 deletefilter(HttpServletRequest aRequest, HttpServletResponse aResponse) { + public void moveup(HttpServletRequest aRequest, HttpServletResponse aResponse) { HTTPRequestParser requestParser = new HTTPRequestParser(aRequest); String id=requestParser.getParameterWithDefault("id", ""); - MirGlobal.abuse().deleteFilter(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, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)}); + 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()); - responseData.put("filtertypes", MirGlobal.abuse().getFilterTypes()); - ServletHelper.generateResponse(aResponse.getWriter(), responseData, "abuse.filters.template"); + 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, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)}); + Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, getLocales(aRequest)); urlBuilder.setValue("module", "Abuse"); urlBuilder.setValue("do", "showsettings"); @@ -125,7 +240,7 @@ public class ServletModuleAbuse extends ServletModule { responseData.put("articleaction", MirGlobal.abuse().getArticleBlockAction()); responseData.put("commentaction", MirGlobal.abuse().getCommentBlockAction()); - ServletHelper.generateResponse(aResponse.getWriter(), responseData, "abuse.template"); + ServletHelper.generateResponse(aResponse.getWriter(), responseData, mainTemplate); } catch (Throwable e) { throw new ServletModuleFailure(e); @@ -152,6 +267,7 @@ public class ServletModuleAbuse extends ServletModule { MirGlobal.abuse().setCommentBlockAction(parser.getParameter("commentaction")); MirGlobal.abuse().save(); + logAdminUsage(aRequest, "settings", "object modified"); showsettings(aRequest, aResponse); } @@ -162,17 +278,16 @@ public class ServletModuleAbuse extends ServletModule { public void showlog(HttpServletRequest aRequest, HttpServletResponse aResponse) { URLBuilder urlBuilder = new URLBuilder(); - int count; try { - Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)}); + 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, "abuse.log.template"); + ServletHelper.generateResponse(aResponse.getWriter(), responseData, viewLogTemplate); } catch (Throwable e) { throw new ServletModuleFailure(e);