Add feature, redirect after logout.

This commit is contained in:
Colin Kuskie 2012-02-24 23:07:15 -08:00
parent 476b14f82c
commit 04c902a23e
7 changed files with 73 additions and 6 deletions

View file

@ -1001,12 +1001,12 @@ sub www_createAccountSave {
return $self->showMessageOnLogin;
}
elsif ($self->session->form->get('returnUrl')) {
$self->session->response->setRedirect( $self->session->form->get('returnUrl') );
$self->session->response->redirect( $self->session->form->get('returnUrl') );
$self->session->scratch->delete("redirectAfterLogin");
}
elsif ($self->session->scratch->get("redirectAfterLogin")) {
my $url = $self->session->scratch->delete("redirectAfterLogin");
$self->session->response->setRedirect($url);
$self->session->response->redirect($url);
return undef;
}
else {
@ -1283,7 +1283,12 @@ sub www_logout {
# Do not allow caching of the logout page (to ensure the page gets requested)
$self->session->response->setCacheControl( "none" );
if ( $self->session->setting->get("redirectAfterLogoutUrl") ) {
$self->session->log->warn("redirecting to: ".$self->session->setting->get("redirectAfterLogoutUrl"));
$self->session->response->setRedirect($self->session->setting->get("redirectAfterLogoutUrl"));
}
return undef;
}

View file

@ -495,6 +495,14 @@ sub definition {
label => $i18n->get( 'redirectAfterLoginUrl label' ),
hoverHelp => $i18n->get( 'redirectAfterLoginUrl description' ),
};
push @fields, {
tab => "user",
name => "redirectAfterLogoutUrl",
fieldType => "url",
defaultValue => $setting->get('redirectAfterLogoutUrl'),
label => $i18n->get( 'redirectAfterLogoutUrl label' ),
hoverHelp => $i18n->get( 'redirectAfterLogoutUrl description' ),
};
push @fields, {
tab => "user",
name => "showMessageOnLogin",

View file

@ -176,8 +176,7 @@ sub setRedirect {
my @params = $self->session->form->param;
return undef if ($url eq $self->session->url->page() && scalar(@params) < 1); # prevent redirecting to self
$self->session->log->info("Redirecting to $url");
$self->location($url);
$self->status($type);
$self->redirect($url, $type);
$self->session->style->setMeta({"http-equiv"=>"refresh",content=>"0; URL=".$url});
}

View file

@ -4214,12 +4214,24 @@ LongTruncOk=1</p>
context => q{Label for site setting},
},
'showMessageOnLogin description' => {
'redirectAfterLoginUrl description' => {
message => q{Users will be redirected to this url after logging in.},
lastUpdated => 0,
context => q{Description for site setting},
},
'redirectAfterLogoutUrl label' => {
message => q{Redirect After Logout Url},
lastUpdated => 0,
context => q{Label for site setting},
},
'redirectAfterLogoutUrl description' => {
message => q{Users will be redirected to this url after logging out.},
lastUpdated => 0,
context => q{Description for site setting},
},
'showMessageOnLogin label' => {
message => q{Show Message On Login?},
lastUpdated => 0,