--- loncom/auth/lonlogout.pm 2010/03/22 20:11:08 1.41 +++ loncom/auth/lonlogout.pm 2011/06/13 17:41:01 1.42 @@ -1,7 +1,7 @@ # The LearningOnline Network # Logout Handler # -# $Id: lonlogout.pm,v 1.41 2010/03/22 20:11:08 droeschl Exp $ +# $Id: lonlogout.pm,v 1.42 2011/06/13 17:41:01 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -106,14 +106,29 @@ sub handler { $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 ($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.' ,'','') # ,'','') @@ -128,10 +143,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"));