diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2007-08-05 21:38:27 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2007-08-05 21:38:27 +0000 |
commit | 8e2fb374e03ee2122fcfb678fd851673ca86eefa (patch) | |
tree | 125bb60c3515faf325cee613924033d03a8eebb1 | |
parent | 06e74035770af03aec7b077baf15b34eeef7a8eb (diff) |
* Add sessioncgi hook.
-rw-r--r-- | IkiWiki/CGI.pm | 5 | ||||
-rw-r--r-- | debian/changelog | 3 | ||||
-rw-r--r-- | doc/plugins/write.mdwn | 9 | ||||
-rw-r--r-- | doc/todo/cgi_hooks_get_session_objects.mdwn | 5 |
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]] |