--- loncom/auth/lonlogout.pm 2009/09/23 13:20:38 1.37.4.1 +++ loncom/auth/lonlogout.pm 2012/02/10 19:20:29 1.42.2.2.2.3 @@ -1,7 +1,7 @@ # The LearningOnline Network # Logout Handler # -# $Id: lonlogout.pm,v 1.37.4.1 2009/09/23 13:20:38 gci Exp $ +# $Id: lonlogout.pm,v 1.42.2.2.2.3 2012/02/10 19:20:29 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -103,19 +103,48 @@ sub handler { $switch); } else { $start_page=&Apache::loncommon::start_page('Logged Out',undef, - {'no_inline_link' => 1,}); + {'no_inline_link' => 1, + 'no_nav_bar' => 1,}); $relogmessage.='

'.&mt('Goodbye').'

' .'

'.&mt('Thank you for using LON-CAPA.').'

'; + my $domain = $env{'user.domain'}; if (!$env{'request.sso.norelogin'}) { - my $relogin_server; + my ($relogin_server,$login_url); if ($env{'request.sso.reloginserver'}) { $relogin_server = $env{'request.sso.reloginserver'}; - } - my $login_url = $relogin_server.'/adm/'. - ($env{'request.sso.login'} ? 'roles': 'login'); - + } else { + my %domdefaults = &Apache::lonnet::get_domain_defaults($domain); + if ($domdefaults{'portal_def'}) { + $login_url = $domdefaults{'portal_def'}; + } else { + my $checkloginvia = 1; + my ($lonhost,$server,$path,$isredirect) = + &Apache::lonnet::choose_server($domain,$checkloginvia); + if ($server && $lonhost) { + $login_url = $Apache::lonnet::protocol{$lonhost}. + '://'.$server.$path; + if (($path eq '') && (!$isredirect)) { + my $serverhomeID = + &Apache::lonnet::get_server_homeID($lonhost); + my $serverhomedom = + &Apache::lonnet::host_domain($serverhomeID); + if ($serverhomedom ne $domain) { + $path = '/adm/login'; + $login_url .= $path; + } + } + if ($path eq '/adm/login' && $domain ne '') { + $login_url .= '?domain='.$domain; + } + } + } + } + if ($login_url eq '') { + $login_url = $relogin_server.'/adm/'. + ($env{'request.sso.login'} ? 'roles': 'login?domain='.$domain); + } $relogmessage.='

'.&mt('You have been successfully logged out.').' ' .&mt('You can [_1]close this window[_2] now.' ,'','') # ,'','') @@ -130,14 +159,13 @@ Due to security reasons in new web brows =cut - $relogmessage .= '

'.&mt('[_1]Log in again[_2]' - ,'',''). - (' 'x6).&mt('[_1]Return to WebCenter front page[_2]', - '','') - .'

'; - + $relogmessage.='

'.&mt('[_1]Log in again[_2]' + ,'','') + .(' 'x6).&mt('[_1]Return to course information page[_2]' + ,'' + ,'') + .'

'; } - my $domain = $env{'user.domain'}; if ($env{'request.sso.login'} && defined($r->dir_config("lonSSOUserLogoutMessageFile_$domain"))) { open(my $fh,$r->dir_config("lonSSOUserLogoutMessageFile_$domain"));