Fixes #11485 - RedirectAfterLoginUrl Setting should not override returnUrl and redirectAfterLogin scratch

The redirectAfterLogin Setting works better if it is checked after
  $self->session->form->get('returnUrl')
and
  $self->session->scratch->get("redirectAfterLogin")
in WebGUI::Auth::login.

This is so that the redirectAfterLogin scratch variable and returnUrl form param get a chance to redirect
Visitors to the appropriate page after being shown an intermediate login form.
This commit is contained in:
Patrick Donelan 2010-03-22 15:41:48 -04:00
parent 1c949b1922
commit 2dd18be4be
2 changed files with 5 additions and 4 deletions

View file

@ -8,6 +8,7 @@
- fixed #11478: Overzealous removal of double slashes in FilePump macro
- fixed thread pagination on search results, off by 1 error and modal direction
- fixed #11482: Template hard-coded in deactivateAccount
- fixed #11485: RedirectAfterLoginUrl Setting should not override returnUrl and redirectAfterLogin scratch
7.9.0
- added #11383: AJAX username checks at registration (Luke Robinson / Orchard Solutions)

View file

@ -881,10 +881,6 @@ sub login {
) {
return $self->showMessageOnLogin;
}
elsif ( $self->session->setting->get("redirectAfterLoginUrl") ) {
$self->session->http->setRedirect($self->session->setting->get("redirectAfterLoginUrl"));
$self->session->scratch->delete("redirectAfterLogin");
}
elsif ( $self->session->form->get('returnUrl') ) {
$self->session->http->setRedirect( $self->session->form->get('returnUrl') );
$self->session->scratch->delete("redirectAfterLogin");
@ -892,6 +888,10 @@ sub login {
elsif ( my $url = $self->session->scratch->delete("redirectAfterLogin") ) {
$self->session->http->setRedirect($url);
}
elsif ( $self->session->setting->get("redirectAfterLoginUrl") ) {
$self->session->http->setRedirect($self->session->setting->get("redirectAfterLoginUrl"));
$self->session->scratch->delete("redirectAfterLogin");
}
# Get open version tag. This is needed if we want
# to reclaim a version right after login (singlePerUser and siteWide mode)