version 1.35, 2008/11/20 15:19:22
|
version 1.47, 2015/03/04 21:34:28
|
Line 26
|
Line 26
|
# http://www.lon-capa.org/ |
# http://www.lon-capa.org/ |
# |
# |
|
|
|
=head1 NAME |
|
|
|
Apache::lonlogout |
|
|
|
=head1 SYNOPSIS |
|
|
|
|
|
This is part of the LearningOnline Network with CAPA project |
|
described at http://www.lon-capa.org. |
|
|
|
|
|
=cut |
|
|
package Apache::lonlogout; |
package Apache::lonlogout; |
|
|
use strict; |
use strict; |
Line 57 sub handler {
|
Line 70 sub handler {
|
my $lonidsdir=$r->dir_config('lonIDsDir'); |
my $lonidsdir=$r->dir_config('lonIDsDir'); |
&Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle); |
&Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle); |
unlink("$lonidsdir/$handle.id"); |
unlink("$lonidsdir/$handle.id"); |
|
if (!$Apache::lonlocal::lh) { |
|
&Apache::lonlocal::get_language_handle($r); |
|
} |
my %temp=('logout' => time); |
my %temp=('logout' => time); |
&Apache::lonnet::put('email_status',\%temp); |
&Apache::lonnet::put('email_status',\%temp); |
&Apache::lonnet::log($env{'user.domain'}, |
&Apache::lonnet::log($env{'user.domain'}, |
Line 76 sub handler {
|
Line 92 sub handler {
|
return OK if $r->header_only; |
return OK if $r->header_only; |
# -------------------------------------------------------- Menu script and info |
# -------------------------------------------------------- Menu script and info |
|
|
my $windowinfo=&Apache::lonmenu::close(); |
|
$windowinfo.=&Apache::lonnavmaps::close(); |
|
# ---------------------------------------------------------------- Get handover |
# ---------------------------------------------------------------- Get handover |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['handover']); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},['handover']); |
my $switch=''; |
my $switch=''; |
Line 85 sub handler {
|
Line 99 sub handler {
|
my $relogmessage=''; |
my $relogmessage=''; |
if ($env{'form.handover'}) { |
if ($env{'form.handover'}) { |
$switch='<meta HTTP-EQUIV="Refresh" CONTENT="0.5; url='. |
$switch='<meta HTTP-EQUIV="Refresh" CONTENT="0.5; url='. |
$env{'form.handover'}.'">'; |
$env{'form.handover'}.'" />'; |
$start_page=&Apache::loncommon::start_page('Switching Server ...', |
$start_page=&Apache::loncommon::start_page('Switching Server ...', |
$switch); |
$switch); |
} else { |
} else { |
$start_page=&Apache::loncommon::start_page('Logged Out',undef, |
my $domain = $env{'user.domain'}; |
{'no_inline_link' => 1,}); |
my $headextra; |
|
if ($env{'request.sso.login'} |
|
&& defined($r->dir_config("lonSSOUserLogoutHeadFile_$domain"))) { |
|
if (open(my $fh,$r->dir_config("lonSSOUserLogoutHeadFile_$domain"))) { |
|
$headextra = join('',<$fh>); |
|
close($fh); |
|
} |
|
} |
|
if ($env{'request.sso.login'} |
|
&& defined($r->dir_config('lonSSOUserLogoutHeadFile'))) { |
|
if (open(my $fh,$r->dir_config('lonSSOUserLogoutHeadFile'))) { |
|
$headextra.= join('',<$fh>); |
|
} |
|
} |
|
$start_page=&Apache::loncommon::start_page('Logged Out',$headextra, |
|
{'no_nav_bar' => 1,}); |
|
|
$relogmessage.='<h1>'.&mt('Goodbye').'</h1>' |
$relogmessage.='<h1>'.&mt('Goodbye').'</h1>' |
.'<p>'.&mt('Thank you for using LON-CAPA.').'</p>'; |
.'<p>'.&mt('Thank you for using LON-CAPA.').'</p>'; |
|
|
if (!$env{'request.sso.norelogin'}) { |
if (!$env{'request.sso.norelogin'}) { |
my $relogin_server; |
my ($relogin_server,$login_url); |
if ($env{'request.sso.reloginserver'}) { |
if ($env{'request.sso.reloginserver'}) { |
$relogin_server = $env{'request.sso.reloginserver'}; |
$relogin_server = $env{'request.sso.reloginserver'}; |
} |
} else { |
my $login_url = $relogin_server.'/adm/'. |
my %domdefaults = &Apache::lonnet::get_domain_defaults($domain); |
($env{'request.sso.login'} ? 'roles': 'login'); |
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($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; |
|
} |
|
} |
|
} |
|
} |
|
if ($login_url eq '') { |
|
$login_url = $relogin_server.'/adm/'. |
|
($env{'request.sso.login'} ? 'roles': 'login?domain='.$domain); |
|
} |
$relogmessage.='<p>'.&mt('You have been successfully logged out.').' ' |
$relogmessage.='<p>'.&mt('You have been successfully logged out.').' ' |
.&mt('You can [_1]close this window[_2] now.' |
.&mt('You can [_1]close this window[_2] now.' |
,'','') # ,'<a href="javascript:self.close();">','</a>') |
,'','') # ,'<a href="javascript:self.close();">','</a>') |
Line 117 Due to security reasons in new web brows
|
Line 173 Due to security reasons in new web brows
|
|
|
=cut |
=cut |
$relogmessage.='<p>'.&mt('[_1]Log in again[_2]' |
$relogmessage.='<p>'.&mt('[_1]Log in again[_2]' |
,'<a href="'.$login_url.'?domain='.$env{'user.domain'}.'">','</a>') |
,'<a href="'.$login_url.'">','</a>') |
.'</p>'; |
.'</p>'; |
} |
} |
my $domain = $env{'user.domain'}; |
|
if ($env{'request.sso.login'} |
if ($env{'request.sso.login'} |
&& defined($r->dir_config("lonSSOUserLogoutMessageFile_$domain"))) { |
&& defined($r->dir_config("lonSSOUserLogoutMessageFile_$domain"))) { |
open(my $fh,$r->dir_config("lonSSOUserLogoutMessageFile_$domain")); |
if (open(my $fh,$r->dir_config("lonSSOUserLogoutMessageFile_$domain"))) { |
$relogmessage.= join('',<$fh>); |
$relogmessage.= join('',<$fh>); |
|
close($fh); |
|
} |
} |
} |
if ($env{'request.sso.login'} |
if ($env{'request.sso.login'} |
&& defined($r->dir_config('lonSSOUserLogoutMessageFile'))) { |
&& defined($r->dir_config('lonSSOUserLogoutMessageFile'))) { |
open(my $fh,$r->dir_config('lonSSOUserLogoutMessageFile')); |
if (open(my $fh,$r->dir_config('lonSSOUserLogoutMessageFile'))) { |
$relogmessage.= join('',<$fh>); |
$relogmessage.= join('',<$fh>); |
|
close($fh); |
|
} |
} |
} |
|
|
} |
} |
my $end_page=&Apache::loncommon::end_page(); |
my $end_page=&Apache::loncommon::end_page(); |
# --------------------------------------------------------------- Screen Output |
# --------------------------------------------------------------- Screen Output |
$r->print(<<ENDDOCUMENT); |
$r->print(<<ENDDOCUMENT); |
$start_page |
$start_page |
$windowinfo |
|
$relogmessage |
$relogmessage |
$end_page |
$end_page |
ENDDOCUMENT |
ENDDOCUMENT |
Line 154 sub flush_course_logs {
|
Line 211 sub flush_course_logs {
|
__END__ |
__END__ |
|
|
|
|
=head1 NAME |
|
|
|
Apache::lonlogout |
|
|
|
=head1 SYNOPSIS |
|
|
|
|
|
This is part of the LearningOnline Network with CAPA project |
|
described at http://www.lon-capa.org. |
|
|
|
=head1 HANDLER SUBROUTINE |
|
|
|
|
|
=cut |
|
|
|
|
|
|
|
|
|