]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/blogspam.pm
Simplifying code
[ikiwiki.git] / IkiWiki / Plugin / blogspam.pm
index f0b6cb2a2742519a2796bce8a863500f34d0d5f0..e48ed729f5439f148e7f70e0d228990cbbe2a0f2 100644 (file)
@@ -53,6 +53,7 @@ sub checkconfig () {
        eval q{
                use RPC::XML;
                use RPC::XML::Client;
+               $RPC::XML::ENCODING = 'utf-8';
        };
        error $@ if $@;
 }
@@ -61,12 +62,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};