diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-05-01 14:58:23 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-05-01 14:58:23 -0400 |
commit | 6f852e88e30775cb2238f301bb7ca1c4a83d59f4 (patch) | |
tree | 7d30c9308e9f3c1c43616e6b6011468030a84fbe | |
parent | f39659277db1865cf75d6a141e4dd6508945a2f5 (diff) | |
download | ikiwiki-6f852e88e30775cb2238f301bb7ca1c4a83d59f4.tar ikiwiki-6f852e88e30775cb2238f301bb7ca1c4a83d59f4.tar.gz |
anonk: Add anonok_pagespec configuration setting that can be used to allow anonymous users to edit only matching pages. Closes: #478892
-rw-r--r-- | IkiWiki/Plugin/anonok.pm | 19 | ||||
-rw-r--r-- | debian/changelog | 2 | ||||
-rw-r--r-- | doc/ikiwiki.setup | 4 | ||||
-rw-r--r-- | doc/plugins/anonok.mdwn | 6 |
4 files changed, 29 insertions, 2 deletions
diff --git a/IkiWiki/Plugin/anonok.pm b/IkiWiki/Plugin/anonok.pm index cd05cd865..ba02325ff 100644 --- a/IkiWiki/Plugin/anonok.pm +++ b/IkiWiki/Plugin/anonok.pm @@ -10,7 +10,24 @@ sub import { #{{{ } # }}} sub canedit ($$$) { #{{{ - return ""; + my $page=shift; + my $cgi=shift; + my $session=shift; + + my $ret; + + if (length $config{anonok_pagespec}) { + if (pagespec_match($page, $config{anonok_pagespec}, + location => $page)) { + return ""; + } + else { + return undef; + } + } + else { + return ""; + } } #}}} 1 diff --git a/debian/changelog b/debian/changelog index b7daeec27..1d06b4f5d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,8 @@ ikiwiki (2.45) UNRELEASED; urgency=low * Add missing de.po. Closes: #471540 * img: Support a title attribute, will be passed through to html. Closes: #478718 + * anonk: Add anonok_pagespec configuration setting that can be used to + allow anonymous users to edit only matching pages. Closes: #478892 -- Joey Hess <joeyh@debian.org> Sat, 26 Apr 2008 15:09:36 -0400 diff --git a/doc/ikiwiki.setup b/doc/ikiwiki.setup index 885f77813..cbc4cbc9f 100644 --- a/doc/ikiwiki.setup +++ b/doc/ikiwiki.setup @@ -159,4 +159,8 @@ use IkiWiki::Setup::Standard { # mirror1 => "http://hostname1", # mirror2 => "http://hostname2/mirror", #}, + + # For use with the anonok plugin, a PageSpec specifying what + # pages anonymous users can edit + #anonok_pagespec => "*", } diff --git a/doc/plugins/anonok.mdwn b/doc/plugins/anonok.mdwn index 8afcf86f5..2afde29b3 100644 --- a/doc/plugins/anonok.mdwn +++ b/doc/plugins/anonok.mdwn @@ -2,4 +2,8 @@ [[tag type/auth]] By default, anonymous users cannot edit the wiki. This plugin allows -anonymous web users, who have not signed in, to edit any page in the wiki. +anonymous web users, who have not signed in, to edit any page in the wiki +by default. + +The plugin also has a configuration setting, `anonok_pagespec`. This +[[PageSpec]] can be used to allow anonymous editing of matching pages. |