version 1.27, 2007/08/25 00:51:24
|
version 1.31, 2008/05/13 15:06:34
|
Line 41 sub handler {
|
Line 41 sub handler {
|
|
|
#Check for cookie |
#Check for cookie |
my $requrl=$r->uri; |
my $requrl=$r->uri; |
my %cookies=CGI::Cookie->parse($r->header_in('Cookie')); |
my $handle = &Apache::lonnet::check_for_valid_session($r); |
my $lonid=$cookies{'lonID'}; |
|
my $cookie; |
|
if (!$lonid) { |
|
return FORBIDDEN; |
|
} |
|
|
|
#check if cookie still valid |
#check if cookie still valid |
my $handle=&LONCAPA::clean_handle($lonid->value); |
if ($handle eq '') { |
my $lonidsdir=$r->dir_config('lonIDsDir'); |
|
if ((!-e "$lonidsdir/$handle.id") || ($handle eq '')) { |
|
$r->log_reason("Cookie $handle not valid", $r->filename); |
$r->log_reason("Cookie $handle not valid", $r->filename); |
return FORBIDDEN; |
return FORBIDDEN; |
} |
} |
|
|
#we've got a valid user |
#we've got a valid user |
|
#any locks in place? |
|
my $locknum=&Apache::lonnet::get_locks(); |
|
if ($locknum) { return 409; } |
|
#nope, go ahead |
my @profile; |
my @profile; |
|
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"); |
my %temp=('logout' => time); |
my %temp=('logout' => time); |
Line 94 sub handler {
|
Line 91 sub handler {
|
} else { |
} else { |
$start_page=&Apache::loncommon::start_page('Logged Out',undef, |
$start_page=&Apache::loncommon::start_page('Logged Out',undef, |
{'no_inline_link' => 1,}); |
{'no_inline_link' => 1,}); |
my %lt=&Apache::lonlocal::texthash('gb' => 'Goodbye', |
|
'cw' => 'close this window', |
|
'li' => 'log in again', |
|
'pe' => 'Please either', |
|
'or' => 'or'); |
|
|
|
$relogmessage.=(<<ENDRELOG); |
$relogmessage.='<h1>'.&mt('Goodbye').'</h1>'; |
<h1>$lt{'gb'}!</h1> |
|
ENDRELOG |
|
|
|
if (!$env{'request.sso.norelogin'}) { |
if (!$env{'request.sso.norelogin'}) { |
my $relogin_server; |
my $relogin_server; |
Line 112 ENDRELOG
|
Line 102 ENDRELOG
|
my $login_url = $relogin_server.'/adm/'. |
my $login_url = $relogin_server.'/adm/'. |
($env{'request.sso.login'} ? 'roles': 'login'); |
($env{'request.sso.login'} ? 'roles': 'login'); |
|
|
$relogmessage.=(<<ENDRELOG); |
$relogmessage.=&mt('Please either [_1]close this window[_2] or [_3]log in again[_4].' |
$lt{'pe'} <a href="javascript:self.close();">$lt{'cw'}</a> $lt{'or'} |
,'<a href="javascript:self.close();">','</a>' |
<a href="$login_url?domain=$env{'user.domain'}">$lt{'li'}</a>. |
,'<a href="'.$login_url.'?domain='.$env{'user.domain'}.'">','</a>'); |
ENDRELOG |
|
|
|
} |
} |
my $domain = $env{'user.domain'}; |
my $domain = $env{'user.domain'}; |
if ($env{'request.sso.login'} |
if ($env{'request.sso.login'} |
Line 139 $windowinfo
|
Line 127 $windowinfo
|
$relogmessage |
$relogmessage |
$end_page |
$end_page |
ENDDOCUMENT |
ENDDOCUMENT |
&Apache::lonnet::flushcourselogs(); |
$r->register_cleanup(\&flush_course_logs); |
return OK; |
return OK; |
} |
} |
|
|
|
sub flush_course_logs { |
|
&Apache::lonnet::flushcourselogs(); |
|
return OK; |
|
} |
|
|
1; |
1; |
__END__ |
__END__ |
|
|