X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Flocalizer%2Fbasic%2FMirBasicOpenPostingLocalizer.java;h=bad1ede22a7d487c774de9b319c91ce28d7396a9;hb=b91681c07507cd92174b2414466525b6ec324be2;hp=5501e7aecb6785398a564a64bdb19e50fb4c9a88;hpb=213122e7c65211f549722f05aa8e0135f15af35c;p=mir.git diff --git a/source/mircoders/localizer/basic/MirBasicOpenPostingLocalizer.java b/source/mircoders/localizer/basic/MirBasicOpenPostingLocalizer.java index 5501e7ae..bad1ede2 100755 --- a/source/mircoders/localizer/basic/MirBasicOpenPostingLocalizer.java +++ b/source/mircoders/localizer/basic/MirBasicOpenPostingLocalizer.java @@ -35,9 +35,10 @@ import mir.session.Request; import mir.session.Session; import mir.session.SessionHandler; import mircoders.abuse.FilterType; -import mircoders.abuse.ThrottleFilter; import mircoders.abuse.IPFilterType; import mircoders.abuse.RegularExpressionFilterType; +import mircoders.abuse.ThrottleFilter; +import mircoders.abuse.PostingSizeFilterType; import mircoders.entity.EntityComment; import mircoders.entity.EntityContent; import mircoders.global.MirGlobal; @@ -46,7 +47,13 @@ import mircoders.localizer.MirLocalizerExc; import mircoders.localizer.MirLocalizerFailure; import mircoders.localizer.MirOpenPostingLocalizer; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Random; public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer { private List afterContentProducerTasks; @@ -56,7 +63,7 @@ public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer { protected LoggerWrapper logger; protected MirPropertiesConfiguration configuration; - public MirBasicOpenPostingLocalizer() throws MirLocalizerExc, MirLocalizerFailure { + public MirBasicOpenPostingLocalizer() throws MirLocalizerFailure { logger = new LoggerWrapper("Localizer.Basic.OpenPosting"); try { @@ -88,7 +95,8 @@ public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer { addSimpleAntiAbuseFilterType(new IPFilterType("ip")); addSimpleAntiAbuseFilterType(new RegularExpressionFilterType("hostname", false, false, RegularExpressionFilterType.REQUEST_HEADERS, new String[] {"hostname"})); - addSimpleAntiAbuseFilterType(new ThrottleFilter("throttle", 60*60*1000)); + addSimpleAntiAbuseFilterType(new ThrottleFilter("throttle")); + addSimpleAntiAbuseFilterType(new PostingSizeFilterType("size")); } public SessionHandler getOpenSessionHandler(String aSessionType) throws MirLocalizerExc, MirLocalizerFailure { @@ -128,10 +136,18 @@ public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer { } } - public void afterContentPosting(EntityContent aContent) { + public void afterArticlePosting() { afterContentPosting(); } + public void afterArticlePosting(EntityContent anArticle) { + afterContentPosting(anArticle); + } + + public void afterContentPosting(EntityContent anArticle) { + afterArticlePosting(); + } + public void afterCommentPosting(EntityComment aComment) { afterCommentPosting(); } @@ -158,8 +174,9 @@ public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer { long l = System.currentTimeMillis(); l = (l*l*l*l)/random; - if (l<0) + if (l<0) { l = l * -1; + } String returnString = ""+l; @@ -167,7 +184,11 @@ public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer { } public List getAntiAbuseFilterTypes() { - return filterTypes; + return Collections.unmodifiableList(filterTypes); + } + + public boolean allowArticlePublication(EntityContent anArticle){ + return anArticle != null && "1".equals(anArticle.getFieldValue("is_published")); } public void removeSimpleAntiAbuseFilterType(String aName) {