From 8e2fb374e03ee2122fcfb678fd851673ca86eefa Mon Sep 17 00:00:00 2001 From: joey Date: Sun, 5 Aug 2007 21:38:27 +0000 Subject: * Add sessioncgi hook. --- IkiWiki/CGI.pm | 5 ++++- debian/changelog | 3 ++- doc/plugins/write.mdwn | 9 +++++++++ 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 Sun, 05 Aug 2007 13:35:37 -0700 + -- Joey Hess 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]] -- cgit v1.2.3