Changeset 14924
- Timestamp:
- 05/29/12 22:37:50 (12 months ago)
- File:
-
- 1 edited
-
trunk/core/lib/Foswiki/LoginManager.pm (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/core/lib/Foswiki/LoginManager.pm
r14401 r14924 455 455 } 456 456 else { 457 _trace( $this, "User is logging out" ); 458 $session->logEvent( 'logout', ' ', 459 "AUTHENTICATION LOGOUT - $authUser - " ); 460 461 #TODO: consider if we should risk passing on the urlparams on logout 462 my $path_info = $session->{request}->path_info(); 463 if ( my $topic = $session->{request}->param('topic') ) 464 { #we should at least respect the ?topic= request 465 my $topicRequest = Foswiki::Sandbox::untaintUnchecked( 466 $session->{request}->param('topic') ); 467 my ( $web, $topic ) = 468 $this->{session} 469 ->normalizeWebTopicName( undef, $topicRequest ); 470 $path_info = '/' . $web . '/' . $topic; 471 } 472 473 my $redirectUrl; 474 if ($path_info) { 475 $redirectUrl = $session->{request}->url() . $path_info; 476 } 477 else { 478 $redirectUrl = $session->{request}->referer(); 479 } 480 481 #lets avoid infinite loops 482 $session->{request}->delete('logout'); 483 $authUser = $defaultUser; 484 $session->redirect( $redirectUrl, 0 ); 457 $authUser = $this->_logout( $authUser, $defaultUser ); 485 458 } 486 459 } … … 508 481 $this->_addSessionCookieToResponse(); 509 482 } 483 484 return $authUser; 485 } 486 487 =begin TML 488 489 ---++ ObjectMethod _logout($defaultUser) 490 491 =cut 492 493 sub _logout { 494 my ( $this, $authUser, $defaultUser ) = @_; 495 _trace( $this, "User is logging out" ); 496 497 my $session = $this->{session}; 498 $defaultUser = $Foswiki::cfg{DefaultUserLogin} 499 unless ( defined($defaultUser) ); 500 501 $session->logEvent( 'logout', ' ', "AUTHENTICATION LOGOUT - $authUser - " ); 502 503 #TODO: consider if we should risk passing on the urlparams on logout 504 my $path_info = $session->{request}->path_info(); 505 if ( my $topic = $session->{request}->param('topic') ) 506 { #we should at least respect the ?topic= request 507 my $topicRequest = Foswiki::Sandbox::untaintUnchecked( 508 $session->{request}->param('topic') ); 509 my ( $web, $topic ) = 510 $this->{session}->normalizeWebTopicName( undef, $topicRequest ); 511 $path_info = '/' . $web . '/' . $topic; 512 } 513 514 my $redirectUrl; 515 if ($path_info) { 516 $redirectUrl = $session->{request}->url() . $path_info; 517 } 518 else { 519 $redirectUrl = $session->{request}->referer(); 520 } 521 522 #lets avoid infinite loops 523 $session->{request}->delete('logout'); 524 $authUser = $defaultUser; 525 $session->redirect( $redirectUrl, 0 ); 510 526 511 527 return $authUser; … … 1265 1281 Foswiki - The Free and Open Source Wiki, http://foswiki.org/ 1266 1282 1267 Copyright (C) 2008-201 0Foswiki Contributors. Foswiki Contributors1283 Copyright (C) 2008-2012 Foswiki Contributors. Foswiki Contributors 1268 1284 are listed in the AUTHORS file in the root of this distribution. 1269 1285 NOTE: Please extend that file, not this notice.
Note: See TracChangeset
for help on using the changeset viewer.
