From da8a68efca948f50d770060a58f812e58009e2e5 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Tue, 14 Apr 2009 16:47:33 +0000 Subject: [PATCH] fixed a problem in the spam system for Post and added spam prevention in Wiki --- lib/WebGUI/Asset/Post.pm | 1 + lib/WebGUI/Asset/WikiPage.pm | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index 5debd6ba5..dac794d7d 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -970,6 +970,7 @@ sub postProcess { my $spamStopWords = $self->session->config->get('spamStopWords'); if (ref $spamStopWords eq 'ARRAY') { my $spamRegex = join('|',@{$spamStopWords}); + $spamRegex =~ s/\s/\\ /g; if ($data{content} =~ m/$spamRegex/xmsi) { $data{skipNotification} = 1; $self->trash; diff --git a/lib/WebGUI/Asset/WikiPage.pm b/lib/WebGUI/Asset/WikiPage.pm index b6f74069d..1215c65d5 100644 --- a/lib/WebGUI/Asset/WikiPage.pm +++ b/lib/WebGUI/Asset/WikiPage.pm @@ -125,6 +125,22 @@ sub getAutoCommitWorkflowId { my $self = shift; my $wiki = $self->getWiki; if ($wiki->hasBeenCommitted) { + + # delete spam + my $spamStopWords = $self->session->config->get('spamStopWords'); + if (ref $spamStopWords eq 'ARRAY') { + my $spamRegex = join('|',@{$spamStopWords}); + $spamRegex =~ s/\s/\\ /g; + if ($self->get('content') =~ m{$spamRegex}xmsi) { + my $tag = WebGUI::VersionTag->new($self->session, $self->get('tagId')); + $self->purgeRevision; + if ($tag->getAssetCount == 0) { + $tag->rollback; + } + return undef; + } + } + return $wiki->get('approvalWorkflow') || $self->session->setting->get('defaultVersionTagWorkflow'); } @@ -276,7 +292,6 @@ sub processPropertiesFromFormPost { } } } - } #-------------------------------------------------------------------