aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-05-01 14:58:23 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-05-01 14:58:23 -0400
commit6f852e88e30775cb2238f301bb7ca1c4a83d59f4 (patch)
tree7d30c9308e9f3c1c43616e6b6011468030a84fbe
parentf39659277db1865cf75d6a141e4dd6508945a2f5 (diff)
downloadikiwiki-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.pm19
-rw-r--r--debian/changelog2
-rw-r--r--doc/ikiwiki.setup4
-rw-r--r--doc/plugins/anonok.mdwn6
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.