X-Git-Url: http://git.tremily.us/?p=ikiwiki.git;a=blobdiff_plain;f=ikiwiki;h=ca79d3b7eb13c27b5f17ec186034eafce6507d50;hp=a3bf09d3b4b7da6a318961fa9890b614dc56fd8c;hb=63451844f6796a4aa14ac4341d7dfbce3e9d7903;hpb=cae5e22a8d3ac927c526dd9062a44cfc61398667 diff --git a/ikiwiki b/ikiwiki index a3bf09d3b..ca79d3b7e 100755 --- a/ikiwiki +++ b/ikiwiki @@ -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;