File tree 7 files changed +73
-6
lines changed
share/upgrades/7.10.24-8.0.0
7 files changed +73
-6
lines changed Original file line number Diff line number Diff line change 6
6
- Added Facebook Auth and FacebookLogin macro.
7
7
- Removed the WebGUI statistics program and code.
8
8
- Prevent Env Macro from being used to access objects in the environment - Thanks to Haarg
9
+ - added: Redirect on Logout setting
9
10
Original file line number Diff line number Diff line change @@ -1001,12 +1001,12 @@ sub www_createAccountSave {
1001
1001
return $self -> showMessageOnLogin;
1002
1002
}
1003
1003
elsif ($self -> session-> form-> get(' returnUrl' )) {
1004
- $self -> session-> response-> setRedirect ( $self -> session-> form-> get(' returnUrl' ) );
1004
+ $self -> session-> response-> redirect ( $self -> session-> form-> get(' returnUrl' ) );
1005
1005
$self -> session-> scratch-> delete (" redirectAfterLogin" );
1006
1006
}
1007
1007
elsif ($self -> session-> scratch-> get(" redirectAfterLogin" )) {
1008
1008
my $url = $self -> session-> scratch-> delete (" redirectAfterLogin" );
1009
- $self -> session-> response-> setRedirect ($url );
1009
+ $self -> session-> response-> redirect ($url );
1010
1010
return undef ;
1011
1011
}
1012
1012
else {
@@ -1283,7 +1283,12 @@ sub www_logout {
1283
1283
1284
1284
# Do not allow caching of the logout page (to ensure the page gets requested)
1285
1285
$self -> session-> response-> setCacheControl( " none" );
1286
-
1286
+
1287
+ if ( $self -> session-> setting-> get(" redirectAfterLogoutUrl" ) ) {
1288
+ $self -> session-> log -> warn (" redirecting to: " .$self -> session-> setting-> get(" redirectAfterLogoutUrl" ));
1289
+ $self -> session-> response-> setRedirect($self -> session-> setting-> get(" redirectAfterLogoutUrl" ));
1290
+ }
1291
+
1287
1292
return undef ;
1288
1293
}
1289
1294
Original file line number Diff line number Diff line change @@ -495,6 +495,14 @@ sub definition {
495
495
label => $i18n -> get( ' redirectAfterLoginUrl label' ),
496
496
hoverHelp => $i18n -> get( ' redirectAfterLoginUrl description' ),
497
497
};
498
+ push @fields , {
499
+ tab => " user" ,
500
+ name => " redirectAfterLogoutUrl" ,
501
+ fieldType => " url" ,
502
+ defaultValue => $setting -> get(' redirectAfterLogoutUrl' ),
503
+ label => $i18n -> get( ' redirectAfterLogoutUrl label' ),
504
+ hoverHelp => $i18n -> get( ' redirectAfterLogoutUrl description' ),
505
+ };
498
506
push @fields , {
499
507
tab => " user" ,
500
508
name => " showMessageOnLogin" ,
Original file line number Diff line number Diff line change @@ -176,8 +176,7 @@ sub setRedirect {
176
176
my @params = $self -> session-> form-> param;
177
177
return undef if ($url eq $self -> session-> url-> page() && scalar (@params ) < 1); # prevent redirecting to self
178
178
$self -> session-> log -> info(" Redirecting to $url " );
179
- $self -> location($url );
180
- $self -> status($type );
179
+ $self -> redirect($url , $type );
181
180
$self -> session-> style-> setMeta({" http-equiv" => " refresh" ,content => " 0; URL=" .$url });
182
181
}
183
182
Original file line number Diff line number Diff line change @@ -4214,12 +4214,24 @@ LongTruncOk=1</p>
4214
4214
context => q{ Label for site setting} ,
4215
4215
},
4216
4216
4217
- ' showMessageOnLogin description' => {
4217
+ ' redirectAfterLoginUrl description' => {
4218
4218
message => q{ Users will be redirected to this url after logging in.} ,
4219
4219
lastUpdated => 0,
4220
4220
context => q{ Description for site setting} ,
4221
4221
},
4222
4222
4223
+ ' redirectAfterLogoutUrl label' => {
4224
+ message => q{ Redirect After Logout Url} ,
4225
+ lastUpdated => 0,
4226
+ context => q{ Label for site setting} ,
4227
+ },
4228
+
4229
+ ' redirectAfterLogoutUrl description' => {
4230
+ message => q{ Users will be redirected to this url after logging out.} ,
4231
+ lastUpdated => 0,
4232
+ context => q{ Description for site setting} ,
4233
+ },
4234
+
4223
4235
' showMessageOnLogin label' => {
4224
4236
message => q{ Show Message On Login?} ,
4225
4237
lastUpdated => 0,
Original file line number Diff line number Diff line change
1
+ use WebGUI::Upgrade::Script;
2
+ start_step " Adding Redirect After Logout setting" ;
3
+ session-> setting-> add(' redirectAfterLogoutUrl' );
4
+ done;
Original file line number Diff line number Diff line change
1
+ # vim:syntax=perl
2
+ # -------------------------------------------------------------------
3
+ # WebGUI is Copyright 2001-2009 Plain Black Corporation.
4
+ # -------------------------------------------------------------------
5
+ # Please read the legal notices (docs/legal.txt) and the license
6
+ # (docs/license.txt) that came with this distribution before using
7
+ # this software.
8
+ # ------------------------------------------------------------------
9
+ # http://www.plainblack.com info@plainblack.com
10
+ # ------------------------------------------------------------------
11
+
12
+ # Test Auth::LDAP to make sure it works with both ldap and ldaps
13
+ #
14
+ #
15
+
16
+ use FindBin;
17
+ use strict;
18
+ use lib " $FindBin::Bin /../lib" ;
19
+ use Test::More;
20
+ use WebGUI::Test; # Must use this before any other WebGUI modules
21
+ use WebGUI::Session;
22
+
23
+ # ----------------------------------------------------------------------------
24
+ # Init
25
+ my $session = WebGUI::Test-> session;
26
+
27
+ my $user = WebGUI::User-> create($session );
28
+ WebGUI::Test-> addToCleanup($user );
29
+
30
+ $session -> setting-> set(' redirectAfterLogoutUrl' );
31
+ $user -> authInstance-> www_logout;
32
+ is $session -> response-> redirect, undef , ' no redirect set on logout' ;
33
+
34
+ $session -> setting-> set(' redirectAfterLogoutUrl' , ' /other_page' );
35
+ $user -> authInstance-> www_logout;
36
+ is $session -> response-> redirect, ' /other_page' , ' redirect set on logout' ;
37
+
38
+ done_testing;
You can’t perform that action at this time.
0 commit comments