diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 9ad8338d4..36ab7d315 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -14,6 +14,7 @@ - fixed #11385: Wrong user in onCompletePurchase - fixed #11435: Invitation mail uses wrong mail 'from' header - fixed #11440: Search for thread with containers + - fixed #11439: Wrong page after login 7.8.12 - fixed #11285: Pasting HTML into Code Editor in IE diff --git a/lib/WebGUI/Auth.pm b/lib/WebGUI/Auth.pm index dc7f5ae70..2ef3f1d3d 100644 --- a/lib/WebGUI/Auth.pm +++ b/lib/WebGUI/Auth.pm @@ -828,29 +828,29 @@ sub login { } - # Set the proper redirect - if ( $self->session->setting->get( 'showMessageOnLogin' ) - && $self->user->profileField( $LOGIN_MESSAGE_SEEN ) - < $self->session->setting->get( 'showMessageOnLoginTimes' ) - ) { - return $self->showMessageOnLogin; - } - elsif ( $self->session->setting->get("redirectAfterLoginUrl") ) { + # Set the proper redirect + if ( $self->session->setting->get( 'showMessageOnLogin' ) + && $self->user->profileField( $LOGIN_MESSAGE_SEEN ) + < $self->session->setting->get( 'showMessageOnLoginTimes' ) + ) { + return $self->showMessageOnLogin; + } + elsif ( $self->session->setting->get("redirectAfterLoginUrl") ) { $self->session->http->setRedirect($self->session->setting->get("redirectAfterLoginUrl")); - } - elsif ( $self->session->form->get('returnUrl') ) { + $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"); - } - elsif ( $self->session->scratch->get("redirectAfterLogin") ) { - $self->session->http->setRedirect($self->session->scratch->get("redirectAfterLogin")); - $self->session->scratch->delete("redirectAfterLogin"); + } + elsif ( my $url = $self->session->scratch->delete("redirectAfterLogin") ) { + $self->session->http->setRedirect($url); } - # Get open version tag. This is needed if we want - # to reclaim a version right after login (singlePerUser and siteWide mode) - # and to have the correct version displayed. - WebGUI::VersionTag->getWorking($self->session(), q{noCreate}); + # Get open version tag. This is needed if we want + # to reclaim a version right after login (singlePerUser and siteWide mode) + # and to have the correct version displayed. + WebGUI::VersionTag->getWorking($self->session(), q{noCreate}); return undef; }