if (! defined $session->param("name") ||
! userinfo_get($session->param("name"), "regdate")) {
- if (! defined $session->param("postsignin")) {
- $session->param(postsignin => $ENV{QUERY_STRING});
- }
+ $session->param(postsignin => $ENV{QUERY_STRING});
cgi_signin($q, $session);
cgi_savesession($session);
exit;
exit;
}
else {
- # This can occur, for example, if a user went to the signin
- # url via a bookmark.
- redirect($q, $config{url});
+ error(gettext("login failed, perhaps you need to turn on cookies?"));
}
} #}}}
cgi_signin($q, $session);
cgi_savesession($session);
}
- elsif (defined $session->param("postsignin")) {
- cgi_postsignin($q, $session);
- }
elsif ($do eq 'prefs') {
cgi_prefs($q, $session);
}
elsif ($do eq 'create' || $do eq 'edit') {
cgi_editpage($q, $session);
}
- elsif ($do eq 'postsignin') {
- error(gettext("login failed, perhaps you need to turn on cookies?"));
+ elsif (defined $session->param("postsignin")) {
+ cgi_postsignin($q, $session);
}
else {
error("unknown do parameter");
+ikiwiki (2.19) UNRELEASED; urgency=low
+
+ * Only try postsignin if no other action matched. Fixes a bug where the
+ user goes back from the signin screen and does something else.
+ * Improve behavior when trying to sign in with no cookies.
+
+ -- Joey Hess <joeyh@debian.org> Mon, 07 Jan 2008 15:35:16 -0500
+
ikiwiki (2.18) unstable; urgency=low
* Split error messages for failures to drop real uid and gid.