diff options
author | Joey Hess <joey@kitenet.net> | 2011-01-24 16:59:15 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2011-01-24 16:59:15 -0400 |
commit | 1640d12102c75d2214ab5117818e90182ba1a9ae (patch) | |
tree | 652f81057b2903c7b2d5f6a71f56059228afc070 /IkiWiki/Plugin | |
parent | 2be49b623a85b10ad584d7e4e8c31c8436d1c16f (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.pm | 14 |
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}; |