diff options
Diffstat (limited to 'ikiwiki')
-rwxr-xr-x | ikiwiki | 15 |
1 files changed, 9 insertions, 6 deletions
@@ -777,23 +777,26 @@ sub cgi () { #{{{ eval q{use CGI::Session}; my $q=CGI->new; - # session id has to be _sessionid for CGI::FormBuilder to work. - # TODO: stop having the formbuilder emit cookies and change session - # id to something else. - CGI::Session->name("_sessionid"); - my $session = CGI::Session->new(undef, $q, - { Directory=> "$srcdir/.ikiwiki/sessions" }); my $do=$q->param('do'); if (! defined $do || ! length $do) { error("\"do\" parameter missing"); } + # This does not need a session. if ($do eq 'recentchanges') { cgi_recentchanges($q); return; } + # session id has to be _sessionid for CGI::FormBuilder to work. + # TODO: stop having the formbuilder emit cookies and change session + # id to something else. + CGI::Session->name("_sessionid"); + my $session = CGI::Session->new(undef, $q, + { Directory=> "$srcdir/.ikiwiki/sessions" }); + + # Everything below this point needs the user to be signed in. if ((! $anonok && ! defined $session->param("name")) || $do eq 'signin') { cgi_signin($q, $session); return; |