]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/opendiscussion.pm
opendiscussion: don't allow editing discussionpage if discussion is disabled
[ikiwiki.git] / IkiWiki / Plugin / opendiscussion.pm
index c835f01061ea8a5364d369b768ebbada2fb6acfd..808d3cd2bd730c3847a876e016df9145c4bb32a9 100644 (file)
@@ -3,20 +3,31 @@ package IkiWiki::Plugin::opendiscussion;
 
 use warnings;
 use strict;
-use IkiWiki 2.00;
+use IkiWiki 3.00;
 
-sub import { #{{{
-       hook(type => "canedit", id => "opendiscussion", call => \&canedit);
-} # }}}
+sub import {
+       hook(type => "getsetup", id => "opendiscussion", call => \&getsetup);
+       hook(type => "canedit", id => "opendiscussion", call => \&canedit,
+               first => 1);
+}
 
-sub canedit ($$) { #{{{
+sub getsetup () {
+       return 
+               plugin => {
+                       safe => 1,
+                       rebuild => 0,
+                       section => "auth",
+               },
+}
+
+sub canedit ($$) {
        my $page=shift;
        my $cgi=shift;
        my $session=shift;
 
-       my $discussion=gettext("discussion");
-       return "" if $page=~/(\/|^)\Q$discussion\E$/;
+       return "" if $config{discussion} && $page=~/(\/|^)\Q$config{discussionpage}\E$/i;
+       return "" if pagespec_match($page, "postcomment(*)");
        return undef;
-} #}}}
+}
 
 1