--- loncom/auth/lonlogout.pm 2010/03/16 19:55:31 1.40 +++ loncom/auth/lonlogout.pm 2011/10/22 23:53:46 1.43 @@ -1,7 +1,7 @@ # The LearningOnline Network # Logout Handler # -# $Id: lonlogout.pm,v 1.40 2010/03/16 19:55:31 droeschl Exp $ +# $Id: lonlogout.pm,v 1.43 2011/10/22 23:53:46 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -101,20 +101,37 @@ sub handler { $switch); } else { $start_page=&Apache::loncommon::start_page('Logged Out',undef, - {'no_inline_link' => 1, - 'no_nav_bar' => 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) = + &Apache::lonnet::choose_server($domain,$checkloginvia); + if ($server && $lonhost) { + $login_url = $Apache::lonnet::protocol{$lonhost}. + '://'.$server.$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.' ,'','') # ,'','') @@ -129,10 +146,9 @@ Due to security reasons in new web brows =cut $relogmessage.='

'.&mt('[_1]Log in again[_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"));