diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 5abfa1285..372273171 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -3,6 +3,7 @@ - Added WebGUI community statistics question to the site setup wizard. - Added Ogone payment plugin ( Martin Kamerbeek / Oqapi ) - Improved VAT number management for admins ( Martin Kamerbeek / Oqapi ) + - rfe #9981: RedirectAfterLogin Setting 7.7.6 - Added mobile style template. If enabled in settings, will serve alternate style templates diff --git a/docs/upgrades/upgrade_7.7.6-7.7.7.pl b/docs/upgrades/upgrade_7.7.6-7.7.7.pl index 55f3ee2af..c5f75c807 100644 --- a/docs/upgrades/upgrade_7.7.6-7.7.7.pl +++ b/docs/upgrades/upgrade_7.7.6-7.7.7.pl @@ -32,6 +32,7 @@ my $session = start(); # this line required addOgoneToConfig( $session ); addUseEmailAsUsernameToSettings( $session ); alterVATNumberTable( $session ); +addRedirectAfterLoginUrlToSettings( $session ); finish($session); # this line required @@ -56,6 +57,17 @@ sub addUseEmailAsUsernameToSettings { print "Done.\n" unless $quiet; } +#---------------------------------------------------------------------------- +sub addRedirectAfterLoginUrlToSettings { + my $session = shift; + print "\tAdding redirectAfterLoginUrl to settings \n" unless $quiet; + + $session->db->write("insert into settings (name, value) values ('redirectAfterLoginUrl',NULL)"); + + print "Done.\n" unless $quiet; +} + +#---------------------------------------------------------------------------- sub alterVATNumberTable { my $session = shift; print "\tAdapting VAT Number table..." unless $quiet; diff --git a/lib/WebGUI/Auth.pm b/lib/WebGUI/Auth.pm index dbfec3184..1649cb294 100644 --- a/lib/WebGUI/Auth.pm +++ b/lib/WebGUI/Auth.pm @@ -819,6 +819,9 @@ sub login { ) { 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->http->setRedirect( $self->session->form->get('returnUrl') ); $self->session->scratch->delete("redirectAfterLogin"); @@ -997,6 +1000,7 @@ sub showMessageOnLogin { # Add the link to continue my $redirectUrl = $self->session->form->get( 'returnUrl' ) + || $self->session->setting->get("redirectAfterLoginUrl") || $self->session->scratch->get( 'redirectAfterLogin' ) || $self->session->url->getSiteURL . $self->session->url->gateway() ; diff --git a/lib/WebGUI/Operation/Settings.pm b/lib/WebGUI/Operation/Settings.pm index 4a60dd957..b4188a8fc 100644 --- a/lib/WebGUI/Operation/Settings.pm +++ b/lib/WebGUI/Operation/Settings.pm @@ -452,6 +452,14 @@ sub definition { defaultValue=>$setting->get("passiveProfilingEnabled"), extras=>'onchange="alert(\''.$i18n->get("Illegal Warning").'\')" ' }); + push @fields, { + tab => "user", + name => "redirectAfterLoginUrl", + fieldType => "url", + defaultValue => $setting->get('redirectAfterLoginUrl'), + label => $i18n->get( 'redirectAfterLoginUrl label' ), + hoverHelp => $i18n->get( 'redirectAfterLoginUrl description' ), + }; push @fields, { tab => "user", name => "showMessageOnLogin", diff --git a/lib/WebGUI/i18n/English/WebGUI.pm b/lib/WebGUI/i18n/English/WebGUI.pm index 0e87f6c1d..50335c1fa 100644 --- a/lib/WebGUI/i18n/English/WebGUI.pm +++ b/lib/WebGUI/i18n/English/WebGUI.pm @@ -3997,6 +3997,18 @@ LongTruncOk=1

lastUpdated => 1202274234, }, + 'redirectAfterLoginUrl label' => { + message => q{Redirect After Login Url}, + lastUpdated => 0, + context => q{Label for site setting}, + }, + + 'showMessageOnLogin description' => { + message => q{Users will be redirected to this url after logging in.}, + lastUpdated => 0, + context => q{Description for site setting}, + }, + 'showMessageOnLogin label' => { message => q{Show Message On Login?}, lastUpdated => 0,