aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-11-20 01:52:18 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-11-20 01:52:18 +0000
commit54cf5a62cab254e923c8d73ae8bd043a1f33c3b1 (patch)
treebc30fa8f0ec7070eadb5dace8e9743272f742ba2 /doc
parentad01bcd8b49deed11f602c43d1da8235280d5d6b (diff)
downloadikiwiki-54cf5a62cab254e923c8d73ae8bd043a1f33c3b1.tar
ikiwiki-54cf5a62cab254e923c8d73ae8bd043a1f33c3b1.tar.gz
* Make auth methods pluggable.
* Move httpauth support to a plugin. * Add an openid plugin to support logging in using OpenID.
Diffstat (limited to 'doc')
-rw-r--r--doc/features.mdwn6
-rw-r--r--doc/ikiwiki.setup4
-rw-r--r--doc/plugins.mdwn5
-rw-r--r--doc/plugins/httpauth.mdwn9
-rw-r--r--doc/plugins/map.mdwn1
-rw-r--r--doc/plugins/openid.mdwn12
-rw-r--r--doc/plugins/type/auth.mdwn2
-rw-r--r--doc/plugins/write.mdwn13
8 files changed, 45 insertions, 7 deletions
diff --git a/doc/features.mdwn b/doc/features.mdwn
index cb118f27d..05aeebfc9 100644
--- a/doc/features.mdwn
+++ b/doc/features.mdwn
@@ -129,7 +129,11 @@ and can be enabled by enabling [[CGI]].
### User registration
Can optionally be configured to allow only registered users to post
-pages; online user registration form, etc.
+pages.
+
+User registration can be done using a web form, or ikiwiki can be
+configured to accept users authenticated with OpenID, or HTTP basic
+authentication, or other methods implemented via plugins.
### Discussion pages
diff --git a/doc/ikiwiki.setup b/doc/ikiwiki.setup
index 7cff65c5b..6eb6446e0 100644
--- a/doc/ikiwiki.setup
+++ b/doc/ikiwiki.setup
@@ -88,8 +88,6 @@ use IkiWiki::Setup::Standard {
#locale => 'en_US.UTF-8',
# Only send cookies over SSL connections.
#sslcookie => 1,
- # Use HTTP Authentication instead of Ikiwiki's.
- #httpauth => 1,
# Logging settings:
verbose => 0,
syslog => 0,
@@ -97,7 +95,7 @@ use IkiWiki::Setup::Standard {
# To add plugins, list them here.
#add_plugins => [qw{meta tag pagecount brokenlinks search smiley
# wikitext camelcase pagestats htmltidy fortune
- # sidebar map rst toc linkmap}],
+ # sidebar map rst toc linkmap openid}],
# If you want to disable any of the default plugins, list them here.
#disable_plugins => [qw{inline htmlscrubber}],
diff --git a/doc/plugins.mdwn b/doc/plugins.mdwn
index 45e380d58..6de17adc7 100644
--- a/doc/plugins.mdwn
+++ b/doc/plugins.mdwn
@@ -1,7 +1,8 @@
Most of ikiwiki's [[features]] are implemented as plugins. Beyond the
[[type/core]] features, there are plugins to [[type/format]] text,
-use [[type/tags]], show [[type/meta]] information, do other [[type/useful]]
-stuff, add [[type/chrome]] to the wiki, or just have [[type/fun]].
+use [[type/tags]], show [[type/meta]] information, add [[type/auth]]
+methods, do other [[type/useful]] stuff, add [[type/chrome]] to the
+wiki, or just have [[type/fun]].
There's documentation if you want to [[write]] your own plugins, or you can
install and use plugins contributed by others.
diff --git a/doc/plugins/httpauth.mdwn b/doc/plugins/httpauth.mdwn
new file mode 100644
index 000000000..98233570c
--- /dev/null
+++ b/doc/plugins/httpauth.mdwn
@@ -0,0 +1,9 @@
+[[template id=plugin name=httpauth included=1 author="Alec Berryman"]]
+[[tag type/auth]]
+
+This plugin allows HTTP basic authentication to be used to log into the
+wiki. To use the plugin, your web server should be set up to perform HTTP
+basic authentiation. The authenticated user will be automatically signed
+into the wiki.
+
+This plugin is included in ikiwiki, but is not enabled by default.
diff --git a/doc/plugins/map.mdwn b/doc/plugins/map.mdwn
index 01f61e5b3..592a20706 100644
--- a/doc/plugins/map.mdwn
+++ b/doc/plugins/map.mdwn
@@ -12,7 +12,6 @@ Hint: To limit the map to displaying pages less than a certian level deep,
use a [[PageSpec]] like this: `pages="* and !*/*/*"`
This plugin is included in ikiwiki, but is not enabled by default.
-It was contributed by Alessandro Dotti Contra.
If this plugin is enabled, here is a page map for the plugins section
of this wiki:
diff --git a/doc/plugins/openid.mdwn b/doc/plugins/openid.mdwn
new file mode 100644
index 000000000..344be7de3
--- /dev/null
+++ b/doc/plugins/openid.mdwn
@@ -0,0 +1,12 @@
+[[template id=plugin name=openid included=1 author="[[Joey]]"]]
+[[tag type/auth]]
+
+This plugin allows users to use their [OpenID](http://openid.net/) to log
+into the wiki.
+
+The plugin needs the `Net::OpenID::Consumer` perl module. The
+`LWPx::ParanoidAgent` perl module is used if available, for added
+security. Finally, the `Crypt::SSLeay` perl module is needed to support
+users entering "https" OpenID urls.
+
+This plugin is included in ikiwiki, but is not enabled by default.
diff --git a/doc/plugins/type/auth.mdwn b/doc/plugins/type/auth.mdwn
new file mode 100644
index 000000000..a6ae5e4ea
--- /dev/null
+++ b/doc/plugins/type/auth.mdwn
@@ -0,0 +1,2 @@
+These plugins add different authentication methods for logging in to the
+wiki.
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn
index 5cace0911..7c4da8d5f 100644
--- a/doc/plugins/write.mdwn
+++ b/doc/plugins/write.mdwn
@@ -175,6 +175,19 @@ called in turn, and passed a CGI object. The hook should examine the
parameters, and if it will handle this CGI request, output a page and
terminate the program.
+### cgi
+
+ hook(type => "cgi", id => "foo", call => \&auth);
+
+This hook can be used to implement a different authentication method than
+the standard web form. When a user needs to be authenticated, each registered
+auth hook is called in turn, and passed a CGI object and a session object.
+
+If the hook is able to authenticate the user, it should set the session
+object's "name" parameter to the authenticated user's name. Note that
+if the name is set to the name of a user who is not registered,
+a basic registration of the user will be automatically performed.
+
### savestate
hook(type => "savestate", id => "foo", call => \&savestate);