--- loncom/auth/lonlogout.pm 2011/11/19 19:10:34 1.42.2.2 +++ loncom/auth/lonlogout.pm 2013/02/08 17:11:59 1.45.2.2 @@ -1,7 +1,7 @@ # The LearningOnline Network # Logout Handler # -# $Id: lonlogout.pm,v 1.42.2.2 2011/11/19 19:10:34 raeburn Exp $ +# $Id: lonlogout.pm,v 1.45.2.2 2013/02/08 17:11:59 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -70,6 +70,9 @@ sub handler { my $lonidsdir=$r->dir_config('lonIDsDir'); &Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle); unlink("$lonidsdir/$handle.id"); + if (!$Apache::lonlocal::lh) { + &Apache::lonlocal::get_language_handle($r); + } my %temp=('logout' => time); &Apache::lonnet::put('email_status',\%temp); &Apache::lonnet::log($env{'user.domain'}, @@ -90,7 +93,6 @@ sub handler { # -------------------------------------------------------- Menu script and info my $windowinfo=&Apache::lonmenu::close(); - $windowinfo.=&Apache::lonnavmaps::close(); # ---------------------------------------------------------------- Get handover &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['handover']); my $switch=''; @@ -120,11 +122,21 @@ sub handler { $login_url = $domdefaults{'portal_def'}; } else { my $checkloginvia = 1; - my ($lonhost,$server,$path) = + 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($server); + 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; }