Clean up the scratch variable redirectAfterLogin, even if redirectAfterLoginUrl from settings is used. Fixes bug #11439.

This commit is contained in:
Colin Kuskie 2010-02-25 19:06:53 -08:00
parent 7648b124e3
commit 20ad246c41
2 changed files with 19 additions and 18 deletions

View file

@ -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

View file

@ -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;
}