summaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2011-01-24 16:59:15 -0400
committerJoey Hess <joey@kitenet.net>2011-01-24 16:59:15 -0400
commit1640d12102c75d2214ab5117818e90182ba1a9ae (patch)
tree652f81057b2903c7b2d5f6a71f56059228afc070 /IkiWiki/Plugin
parent2be49b623a85b10ad584d7e4e8c31c8436d1c16f (diff)
blogspam: Don't check modifications from admins for spam, and also allow the blogspam_pagespec to do other matches against who the user is.
Diffstat (limited to 'IkiWiki/Plugin')
-rw-r--r--IkiWiki/Plugin/blogspam.pm14
1 files changed, 10 insertions, 4 deletions
diff --git a/IkiWiki/Plugin/blogspam.pm b/IkiWiki/Plugin/blogspam.pm
index f0b6cb2a2..d32c2f169 100644
--- a/IkiWiki/Plugin/blogspam.pm
+++ b/IkiWiki/Plugin/blogspam.pm
@@ -61,12 +61,18 @@ sub checkcontent (@) {
my %params=@_;
my $session=$params{session};
- if (exists $config{blogspam_pagespec}) {
- return undef
- if ! pagespec_match($params{page}, $config{blogspam_pagespec},
- location => $params{page});
+ my $spec='!admin()';
+ if (exists $config{blogspam_pagespec} &&
+ length $config{blogspam_pagespec}) {
+ $spec.=" and (".$config{blogspam_pagespec}.")";
}
+ my $user=$session->param("name");
+ return undef unless pagespec_match($params{page}, $spec,
+ (defined $user ? (user => $user) : ()),
+ (defined $session->remote_addr() ? (ip => $session->remote_addr()) : ()),
+ location => $params{page});
+
my $url=$defaulturl;
$url = $config{blogspam_server} if exists $config{blogspam_server};