[LON-CAPA-cvs] cvs: loncom(version_2_11_X) /auth lonlogout.pm

raeburn raeburn at source.lon-capa.org
Sat Aug 3 18:52:25 EDT 2019


raeburn		Sat Aug  3 22:52:25 2019 EDT

  Modified files:              (Branch: version_2_11_X)
    /loncom/auth	lonlogout.pm 
  Log:
  - For 2.11
    Backport 1.50, 1.55
  
  
Index: loncom/auth/lonlogout.pm
diff -u loncom/auth/lonlogout.pm:1.45.2.6 loncom/auth/lonlogout.pm:1.45.2.7
--- loncom/auth/lonlogout.pm:1.45.2.6	Thu Aug  1 14:30:27 2019
+++ loncom/auth/lonlogout.pm	Sat Aug  3 22:52:25 2019
@@ -1,7 +1,7 @@
 # The LearningOnline Network
 # Logout Handler
 #
-# $Id: lonlogout.pm,v 1.45.2.6 2019/08/01 14:30:27 raeburn Exp $
+# $Id: lonlogout.pm,v 1.45.2.7 2019/08/03 22:52:25 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -71,7 +71,13 @@
     my @profile;
     my $lonidsdir=$r->dir_config('lonIDsDir');
     &Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle);
-    unlink("$lonidsdir/$handle.id");
+    if (unlink("$lonidsdir/$handle.id")) {
+        if (($env{'user.linkedenv'} =~ /^[a-f0-9]+_linked$/) &&
+            (-l "$lonidsdir/$env{'user.linkedenv'}.id") &&
+            (readlink("$lonidsdir/$env{'user.linkedenv'}.id") eq "$lonidsdir/$handle.id")) {
+            unlink("$lonidsdir/$env{'user.linkedenv'}.id");
+        }
+    }
     if (!$Apache::lonlocal::lh) {
         &Apache::lonlocal::get_language_handle($r);
     }
@@ -84,12 +90,15 @@
 
     &Apache::loncommon::content_type($r,'text/html');
 
-    #expire the cookie
-    my $c = new CGI::Cookie(-name    => 'lonID',
-			    -value   => '',
-			    -expires => '-10y',);
-    $r->header_out('Set-cookie' => $c);
-
+    #expire the cookies
+    my %cookies=CGI::Cookie->parse($r->header_in('Cookie'));
+    foreach my $name (keys(%cookies)) {
+        next unless ($name =~ /^lon(|S|Link|Pub)ID$/);
+        my $c = new CGI::Cookie(-name    => $name,
+                                -value   => '',
+                                -expires => '-10y',);
+        $r->headers_out->add('Set-cookie' => $c);
+    }
     $r->send_http_header;
     return OK if $r->header_only;
 # -------------------------------------------------------- Menu script and info




More information about the LON-CAPA-cvs mailing list