X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/6f852e88e30775cb2238f301bb7ca1c4a83d59f4..a3605a90d56e1c37a85c056411af08f7f09147f6:/IkiWiki/Plugin/anonok.pm diff --git a/IkiWiki/Plugin/anonok.pm b/IkiWiki/Plugin/anonok.pm index ba02325ff..0e74cbfad 100644 --- a/IkiWiki/Plugin/anonok.pm +++ b/IkiWiki/Plugin/anonok.pm @@ -3,20 +3,38 @@ package IkiWiki::Plugin::anonok; use warnings; use strict; -use IkiWiki 2.00; +use IkiWiki 3.00; -sub import { #{{{ - hook(type => "canedit", id => "anonok", call => \&canedit,); -} # }}} +sub import { + hook(type => "getsetup", id => "anonok", call => \&getsetup); + hook(type => "canedit", id => "anonok", call => \&canedit); +} -sub canedit ($$$) { #{{{ +sub getsetup () { + return + plugin => { + safe => 1, + rebuild => 0, + section => "auth", + }, + anonok_pagespec => { + type => "pagespec", + example => "*/discussion", + description => "PageSpec to limit which pages anonymous users can edit", + link => "ikiwiki/PageSpec", + safe => 1, + rebuild => 0, + }, +} + +sub canedit ($$$) { my $page=shift; my $cgi=shift; my $session=shift; my $ret; - if (length $config{anonok_pagespec}) { + if (exists $config{anonok_pagespec} && length $config{anonok_pagespec}) { if (pagespec_match($page, $config{anonok_pagespec}, location => $page)) { return ""; @@ -28,6 +46,6 @@ sub canedit ($$$) { #{{{ else { return ""; } -} #}}} +} 1