X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fservlet%2FServletModuleAbuse.java;h=4ceb5e72b8728ef34e0f20f546cdcb38905c0150;hb=6e0b75fe02c5daf91078fd1367bce1c77dbc41b9;hp=0f046e6b7bab3255149dc05f357d2cf9e5f9fa77;hpb=0d512e810fc3838b6787c2a866864481d79c93ca;p=mir.git diff --git a/source/mircoders/servlet/ServletModuleAbuse.java b/source/mircoders/servlet/ServletModuleAbuse.java index 0f046e6b..4ceb5e72 100755 --- a/source/mircoders/servlet/ServletModuleAbuse.java +++ b/source/mircoders/servlet/ServletModuleAbuse.java @@ -30,7 +30,6 @@ package mircoders.servlet; -import java.util.Locale; import java.util.Map; import javax.servlet.http.HttpServletRequest; @@ -40,15 +39,18 @@ import mir.log.LoggerWrapper; import mir.servlet.ServletModule; import mir.servlet.ServletModuleExc; import mir.servlet.ServletModuleFailure; +import mir.storage.DatabaseExc; import mir.util.HTTPRequestParser; import mir.util.URLBuilder; -import mircoders.global.Abuse; +import mircoders.abuse.FilterEngine; import mircoders.global.MirGlobal; public class ServletModuleAbuse extends ServletModule { private static ServletModuleAbuse instance = new ServletModuleAbuse(); private String editFilterTemplate; private String listFiltersTemplate; + private String editFilterGroupTemplate; + private String listFilterGroupsTemplate; private String mainTemplate; private String viewLogTemplate; @@ -60,43 +62,52 @@ public class ServletModuleAbuse extends ServletModule { 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 edit(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc { + public void editfilter(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc { HTTPRequestParser requestParser = new HTTPRequestParser(aRequest); String id=requestParser.getParameterWithDefault("id", ""); + String groupid=requestParser.getParameterWithDefault("groupid", ""); - if (id.equals("")) { - editfilter(aRequest, aResponse, "", "", "", "", "", "", ""); - } - else { - Abuse.FilterRule filter = MirGlobal.abuse().getFilter(id); - if (filter==null) - throw new ServletModuleExc("Filter not found"); + FilterEngine.Filter filter = MirGlobal.abuse().getFilterEngine().getFilterForId(groupid, id); - editfilter(aRequest, aResponse, filter.getId(), filter.getType(), filter.getExpression(), filter.getComments(), filter.getCommentAction(), filter.getArticleAction(), ""); - } + editfilter(aRequest, aResponse, + groupid, + id, filter.getType(), filter.getExpression(), + filter.getComment(), filter.getTag(), filter.getCommentAction(), filter.getArticleAction(), ""); + } + + public void addfilter(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc { + HTTPRequestParser requestParser = new HTTPRequestParser(aRequest); + String groupid=requestParser.getParameterWithDefault("groupid", ""); + + editfilter(aRequest, aResponse, groupid, "", "", "", "", "", "", "", ""); } public void editfilter(HttpServletRequest aRequest, HttpServletResponse aResponse, - String anId, String aType, String anExpression, String aComments, + String aGroupId, String anId, String aType, String anExpression, String aComments, + String aTag, String aCommentAction, String anArticleAction, String anErrorMessage) throws ServletModuleExc { try { - Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, new Locale[] { getLocale(aRequest), getFallbackLocale(aRequest)}); + Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, getLocales(aRequest)); responseData.put("id", anId); + responseData.put("groupid", aGroupId); responseData.put("type", aType); responseData.put("expression", anExpression); responseData.put("comments", aComments); + responseData.put("tag", aTag); 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()); + responseData.put("filtertypes", MirGlobal.abuse().getFilterEngine().getFilterTypes()); ServletHelper.generateResponse(aResponse.getWriter(), responseData, editFilterTemplate); } @@ -110,84 +121,112 @@ public class ServletModuleAbuse extends ServletModule { String type=requestParser.getParameterWithDefault("type", ""); String id=requestParser.getParameterWithDefault("id", ""); + String groupid=requestParser.getParameter("groupid"); String expression=requestParser.getParameterWithDefault("expression", ""); String commentaction=requestParser.getParameterWithDefault("commentaction", ""); String articleaction=requestParser.getParameterWithDefault("articleaction", ""); String comments=requestParser.getParameterWithDefault("comments", ""); + String tag=requestParser.getParameterWithDefault("tag", ""); String errorMessage; - String userName = ServletHelper.getUserName(aRequest); - - if (id.equals("")) { - errorMessage = MirGlobal.abuse().addFilter(type, expression,comments, commentaction, articleaction); - logAdminUsage(aRequest, "?", "object added"); + try { + if (id.equals("")) { + errorMessage = MirGlobal.abuse().getFilterEngine().addFilter( + groupid, type, expression, comments, tag, + articleaction, commentaction); + logAdminUsage(aRequest, id, "filter added"); + } + else { + errorMessage = MirGlobal.abuse().getFilterEngine().updateFilter( + groupid, id, type, expression, comments, tag, + articleaction, commentaction); + logAdminUsage(aRequest, id, "filter modified"); + } } - else { - errorMessage = MirGlobal.abuse().setFilter(id, type, expression, comments, commentaction, articleaction); - logAdminUsage(aRequest, id, "object modified"); + catch (DatabaseExc e) { + throw new ServletModuleFailure(e); } if (errorMessage!=null) { - editfilter(aRequest, aResponse, id, type, expression, comments, commentaction, articleaction, errorMessage); + editfilter(aRequest, aResponse, groupid, id, type, + expression, comments, tag, commentaction, articleaction, errorMessage); } else { MirGlobal.abuse().save(); - showfilters(aRequest, aResponse); + listfilters(aRequest, aResponse); } } - public void delete(HttpServletRequest aRequest, HttpServletResponse aResponse) { + public void deletefilter(HttpServletRequest aRequest, HttpServletResponse aResponse) { HTTPRequestParser requestParser = new HTTPRequestParser(aRequest); - String id=requestParser.getParameterWithDefault("id", ""); - MirGlobal.abuse().deleteFilter(id); - logAdminUsage(aRequest, id, "object deleted"); + 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.abuse().save(); - - showfilters(aRequest, aResponse); + listfilters(aRequest, aResponse); } - public void moveup(HttpServletRequest aRequest, HttpServletResponse aResponse) { + public void deletefiltergroup(HttpServletRequest aRequest, HttpServletResponse aResponse) { HTTPRequestParser requestParser = new HTTPRequestParser(aRequest); - String id=requestParser.getParameterWithDefault("id", ""); - MirGlobal.abuse().moveFilterUp(id); + String groupid=requestParser.getParameter("groupid"); + MirGlobal.abuse().getFilterEngine().deleteFilterGroup(groupid); - MirGlobal.abuse().save(); - logAdminUsage(aRequest, id, "object moved upwards"); + MirGlobal.logAdminUsage(ServletHelper.getUser(aRequest), getOperationModuleName() + ":" + "filtergroup:"+groupid, "filter group deleted"); - showfilters(aRequest, aResponse); + showfiltergroups(aRequest, aResponse); } - public void movedown(HttpServletRequest aRequest, HttpServletResponse aResponse) { - HTTPRequestParser requestParser = new HTTPRequestParser(aRequest); + public void showfilterconfiguration(HttpServletRequest aRequest, HttpServletResponse aResponse) { + showfiltergroups(aRequest, aResponse); + } + public void addfiltergroup(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc { + editfiltergroup(aRequest, aResponse, "", ""); + } + + public void editgroup(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc { + HTTPRequestParser requestParser = new HTTPRequestParser(aRequest); String id=requestParser.getParameterWithDefault("id", ""); - MirGlobal.abuse().moveFilterDown(id); - logAdminUsage(aRequest, id, "object moved downwards"); - MirGlobal.abuse().save(); + FilterEngine.FilterGroup group = MirGlobal.abuse().getFilterEngine().getFilterGroupForId(id); - showfilters(aRequest, aResponse); + editfiltergroup(aRequest, aResponse, id, group.getName()); } - public void add(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc { - editfilter(aRequest, aResponse, "", "", "", "", "", "", ""); + public void editfiltergroup(HttpServletRequest aRequest, HttpServletResponse aResponse, + String anId, String aName) throws ServletModuleExc { + try { + Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, getLocales(aRequest)); + + responseData.put("id", anId); + responseData.put("name", aName); + + ServletHelper.generateResponse(aResponse.getWriter(), responseData, editFilterGroupTemplate); + } + catch (Throwable e) { + throw new ServletModuleFailure(e); + } } - public void showfilters(HttpServletRequest aRequest, HttpServletResponse aResponse) { + public void listfilters(HttpServletRequest aRequest, HttpServletResponse aResponse) { URLBuilder urlBuilder = new URLBuilder(); + HTTPRequestParser requestParser = new HTTPRequestParser(aRequest); + String groupid=requestParser.getParameterWithDefault("groupid", ""); 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"); + urlBuilder.setValue("do", "listfilters"); + urlBuilder.setValue("groupid", groupid); responseData.put("thisurl", urlBuilder.getQuery()); + responseData.put("groupid", groupid); - responseData.put("filters", MirGlobal.abuse().getFilters()); + responseData.put("filters", MirGlobal.abuse().getFilterEngine().getFilters(groupid)); ServletHelper.generateResponse(aResponse.getWriter(), responseData, listFiltersTemplate); } @@ -196,11 +235,51 @@ public class ServletModuleAbuse extends ServletModule { } } + public void updatefiltergroup(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc { + HTTPRequestParser requestParser = new HTTPRequestParser(aRequest); + + String name = requestParser.getParameterWithDefault("name", ""); + String id = requestParser.getParameterWithDefault("id", ""); + + try { + if (id.equals("")) { + MirGlobal.abuse().getFilterEngine().addFilterGroup(name); + } + else { + MirGlobal.abuse().getFilterEngine().updateFilterGroup(id, name); + } + } + catch (DatabaseExc e) { + throw new ServletModuleFailure(e); + } + + showfiltergroups(aRequest, aResponse); + } + + public void showfiltergroups(HttpServletRequest aRequest, HttpServletResponse aResponse) { + URLBuilder urlBuilder = new URLBuilder(); + + try { + Map responseData = ServletHelper.makeGenerationData(aRequest, aResponse, getLocales(aRequest)); + + urlBuilder.setValue("module", "Abuse"); + urlBuilder.setValue("do", "showfiltergroups"); + responseData.put("thisurl", urlBuilder.getQuery()); + + responseData.put("filtergroups", MirGlobal.abuse().getFilterEngine().getFilterGroups()); + + ServletHelper.generateResponse(aResponse.getWriter(), responseData, listFilterGroupsTemplate); + } + 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"); @@ -256,10 +335,9 @@ 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());