X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/5f162cfd344f6b75fa39a57be4b3d488cadd1535..4708aeceb3ec518a00069ad7a112ab0a5596275c:/IkiWiki/Plugin/anonok.pm diff --git a/IkiWiki/Plugin/anonok.pm b/IkiWiki/Plugin/anonok.pm index 3e2a746e6..9d21fe367 100644 --- a/IkiWiki/Plugin/anonok.pm +++ b/IkiWiki/Plugin/anonok.pm @@ -3,14 +3,45 @@ package IkiWiki::Plugin::anonok; use warnings; use strict; -use IkiWiki; +use IkiWiki 2.00; sub import { #{{{ - hook(type => "canedit", id => "anonok", call => \&canedit,); + hook(type => "getsetup", id => "anonok", call => \&getsetup); + hook(type => "canedit", id => "anonok", call => \&canedit); } # }}} +sub getsetup () { #{{{ + return + anonok_pagespec => { + type => "pagespec", + example => "*/discussion", + description => "PageSpec to limit which pages anonymous users can edit", + description_html => htmllink("", "", "ikiwiki/PageSpec", noimageinline => 1). + " to limit which pages anonymous users can edit", + safe => 1, + rebuild => 0, + }, +} #}}} + sub canedit ($$$) { #{{{ - return ""; + my $page=shift; + my $cgi=shift; + my $session=shift; + + my $ret; + + if (exists $config{anonok_pagespec} && length $config{anonok_pagespec}) { + if (pagespec_match($page, $config{anonok_pagespec}, + location => $page)) { + return ""; + } + else { + return undef; + } + } + else { + return ""; + } } #}}} 1