Diff for /loncom/auth/lonlogout.pm between versions 1.45.2.3.2.1 and 1.50

version 1.45.2.3.2.1, 2017/11/03 18:55:16 version 1.50, 2017/02/25 20:00:36
Line 45  use strict; Line 45  use strict;
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use Apache::File;  use Apache::File;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::loncommon;  
 use Apache::lonmenu;  use Apache::lonmenu;
 use CGI::Cookie();  use CGI::Cookie();
 use Apache::lonlocal;  use Apache::lonlocal;
 use LONCAPA qw(:DEFAULT :match);  
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
Line 72  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 ($env{'user.linkedenv'} ne '') {
           my $lonhost = $r->dir_config('lonHostID');
           if ((-l $env{'user.linkedenv'}) && 
               (readlink($env{'user.linkedenv'}) eq "$lonidsdir/$handle.id")) {
               unlink($env{'user.linkedenv'});
           }
       }
     if (!$Apache::lonlocal::lh) {      if (!$Apache::lonlocal::lh) {
         &Apache::lonlocal::get_language_handle($r);          &Apache::lonlocal::get_language_handle($r);
     }      }
Line 85  sub handler { Line 90  sub handler {
     &Apache::loncommon::content_type($r,'text/html');      &Apache::loncommon::content_type($r,'text/html');
   
     #expire the cookie      #expire the cookie
     my $c = new CGI::Cookie(-name    => 'lonID',      my $name = 'lonID';
       if (($env{'user.name'} eq 'public') && ($env{'user.domain'} eq 'public')) {
           $name = 'lonPubID';
       }
       my $c = new CGI::Cookie(-name    => $name,
     -value   => '',      -value   => '',
     -expires => '-10y',);      -expires => '-10y',);
     $r->header_out('Set-cookie' => $c);      $r->headers_out->add('Set-cookie' => $c);
       if (($name eq 'lonID') && ($env{'user.linkeenv'})) {
           my $other = new CGI::Cookie(-name    => 'lonLinkID',
                                       -value   => '',
                                       -expires => '-10y',);
           $r->headers_out->add('Set-cookie' => $other);
       }
     $r->send_http_header;      $r->send_http_header;
     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();  
 # ---------------------------------------------------------------- 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 107  sub handler { Line 120  sub handler {
    $switch);     $switch);
     } else {      } else {
         my $domain = $env{'user.domain'};          my $domain = $env{'user.domain'};
         my ($headextra,$ssofile);          my $headextra;
         if ($env{'request.sso.login'}) {          if ($env{'request.sso.login'}
             my $londocroot = $r->dir_config('lonDocRoot');              && defined($r->dir_config("lonSSOUserLogoutHeadFile_$domain"))) {
             if ($domain =~ /^$match_domain$/) {              if (open(my $fh,$r->dir_config("lonSSOUserLogoutHeadFile_$domain"))) {
                 if (defined($r->dir_config("lonSSOUserLogoutHeadFile_$domain"))) {                  $headextra = join('',<$fh>);
                     $ssofile = '/'.&Apache::loncommon::clean_path($r->dir_config("lonSSOUserLogoutHeadFile_$domain"));                  close($fh);
                     if ($ssofile eq $r->dir_config("lonSSOUserLogoutHeadFile_$domain")) {              }
                         if ($ssofile =~ /^\Q$londocroot\E/) {          }
                             if (open(my $fh,"<$ssofile")) {          if ($env{'request.sso.login'}
                                 $headextra = join('',<$fh>);              && defined($r->dir_config('lonSSOUserLogoutHeadFile'))) {
                                 close($fh);              if (open(my $fh,$r->dir_config('lonSSOUserLogoutHeadFile'))) {
                             }                  $headextra.= join('',<$fh>);
                         }                  close($fh);
                     }  
                 }  
             }  
             if (defined($r->dir_config('lonSSOUserLogoutHeadFile'))) {  
                 $ssofile = '/'.&Apache::loncommon::clean_path($r->dir_config('lonSSOUserLogoutHeadFile'));  
                 if ($ssofile eq $r->dir_config('lonSSOUserLogoutHeadFile')) {  
                     if ($ssofile =~ /^\Q$londocroot\E/) {  
                         if (open(my $fh,"<$ssofile")) {  
                             $headextra.= join('',<$fh>);  
                             close($fh);  
                         }  
                     }  
                 }  
             }              }
         }          }
  $start_page=&Apache::loncommon::start_page('Logged Out',$headextra,   $start_page=&Apache::loncommon::start_page('Logged Out',$headextra,
                            {'no_inline_link' => 1,                             {'no_nav_bar'     => 1,});
                             '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>';
Line 213  Due to security reasons in new web brows Line 212  Due to security reasons in new web brows
 # --------------------------------------------------------------- Screen Output  # --------------------------------------------------------------- Screen Output
     $r->print(<<ENDDOCUMENT);      $r->print(<<ENDDOCUMENT);
 $start_page  $start_page
 $windowinfo  
 $relogmessage  $relogmessage
 $end_page  $end_page
 ENDDOCUMENT  ENDDOCUMENT

Removed from v.1.45.2.3.2.1  
changed lines
  Added in v.1.50


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>