summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/CGI.pm5
-rw-r--r--debian/changelog3
-rw-r--r--doc/plugins/write.mdwn9
-rw-r--r--doc/todo/cgi_hooks_get_session_objects.mdwn5
4 files changed, 19 insertions, 3 deletions
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm
index 2150ea95b..144ad2198 100644
--- a/IkiWiki/CGI.pm
+++ b/IkiWiki/CGI.pm
@@ -688,7 +688,10 @@ sub cgi (;$$) { #{{{
print gettext("You are banned.");
cgi_savesession($session);
}
- elsif ($do eq 'signin') {
+
+ run_hooks(sessioncgi => sub { shift->($q, $session) });
+
+ if ($do eq 'signin') {
cgi_signin($q, $session);
cgi_savesession($session);
}
diff --git a/debian/changelog b/debian/changelog
index e5c259fca..0d40a2d2e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,8 +9,9 @@ ikiwiki (2.6) UNRELEASED; urgency=low
* pagetemplate: don't display template name
* Add rel=tag attribute to tag links, supporting that microformat, as well
as allowing them to be styled specially. Thanks, NicolasLimare.
+ * Add sessioncgi hook.
- -- Joey Hess <joeyh@debian.org> Sun, 05 Aug 2007 13:35:37 -0700
+ -- Joey Hess <joeyh@debian.org> Sun, 05 Aug 2007 14:36:55 -0700
ikiwiki (2.5) unstable; urgency=low
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn
index 90818c42e..416f1b86e 100644
--- a/doc/plugins/write.mdwn
+++ b/doc/plugins/write.mdwn
@@ -208,6 +208,15 @@ 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.
+### sessioncgi
+
+ hook(type => "sessioncgi", id => "foo", call => \&sessioncgi);
+
+Unlike the cgi hook, which is run as soon as possible, the sessioncgi hook
+is only run once a session object is available. It is passed both a CGI
+object and a session object. To check if the user is in fact signed in, you
+can check if the session object has a "name" parameter set.
+
### canedit
hook(type => "canedit", id => "foo", call => \&pagelocked);
diff --git a/doc/todo/cgi_hooks_get_session_objects.mdwn b/doc/todo/cgi_hooks_get_session_objects.mdwn
index c4bcdf185..edb9aba25 100644
--- a/doc/todo/cgi_hooks_get_session_objects.mdwn
+++ b/doc/todo/cgi_hooks_get_session_objects.mdwn
@@ -1,2 +1,5 @@
How about a hook to allow CGI objects to insist on authenticated users
-only? I think "authcgi" would be a good name. --Ethan \ No newline at end of file
+only? I think "authcgi" would be a good name. --Ethan
+
+> This is now [[done]], although I called it sessioncgi since the user may
+> or may not be authed. --[[Joey]]