Diff for /loncom/auth/switchserver.pm between versions 1.34 and 1.36

version 1.34, 2015/01/22 22:45:06 version 1.36, 2017/02/25 20:00:36
Line 106  sub handler { Line 106  sub handler {
     if ($env{'user.name'} eq 'public'      if ($env{'user.name'} eq 'public'
  && $env{'user.domain'} eq 'public') {   && $env{'user.domain'} eq 'public') {
  my $url = $protocol.'://'.$switch_to.$r->uri;   my $url = $protocol.'://'.$switch_to.$r->uri;
           unlink($handle);
           #expire the cookie
           my $c = new CGI::Cookie(-name    => 'lonPubID',
                                   -value   => '',
                                   -expires => '-10y',);
           $r->header_out('Set-cookie' => $c);
  return &do_redirect($r,$url,1)   return &do_redirect($r,$url,1)
     }      }
   
     my $skip_canhost_check = '';      my $skip_canhost_check = '';
     if ($env{'form.role'}) {      if ($env{'form.role'}) {
         if (!exists($env{'user.role.'.$env{'form.role'}})) {          if (!exists($env{'user.role.'.$env{'form.role'}})) {
             return FORBIDDEN;              delete($env{'form.role'});
         } else {          } else {
             my $now = time;              my $now = time;
             my ($start,$end) = split(/\./,$env{'user.role.'.$env{'form.role'}});              my ($start,$end) = split(/\./,$env{'user.role.'.$env{'form.role'}});
             if (($start && $start > $now) || ($end && $end < $now)) {              if (($start && $start > $now) || ($end && $end < $now)) {
                 return FORBIDDEN;                  delete($env{'form.role'});
             } elsif ($env{'form.role'} eq 'au./'.$env{'user.domain'}.'/') {              } elsif ($env{'form.role'} eq 'au./'.$env{'user.domain'}.'/') {
                 if (&Apache::lonnet::homeserver($env{'user.name'},$env{'user.domain'}) eq $env{'form.otherserver'}) {                  if (&Apache::lonnet::homeserver($env{'user.name'},$env{'user.domain'}) eq $env{'form.otherserver'}) {
                     $skip_canhost_check = 1;                      $skip_canhost_check = 1;
Line 157  sub handler { Line 163  sub handler {
   
     #remove session env, and log event      #remove session env, and log event
     unlink($handle);      unlink($handle);
       if ($env{'user.linkedenv'} ne '') {
           my $lonidsdir=$r->dir_config('lonIDsDir');
           if ((-l $env{'user.linkedenv'}) &&
               (readlink($env{'user.linkedenv'}) eq "$lonidsdir/$handle.id")) {
               unlink($env{'user.linkedenv'});
           }
       }
     my %temp=('switchserver' => time.':'.$env{'form.otherserver'},      my %temp=('switchserver' => time.':'.$env{'form.otherserver'},
       $env{'form.role'});        $env{'form.role'});
     &Apache::lonnet::put('email_status',\%temp);      &Apache::lonnet::put('email_status',\%temp);
Line 176  sub handler { Line 189  sub handler {
     my $c = new CGI::Cookie(-name    => 'lonID',      my $c = new CGI::Cookie(-name    => 'lonID',
     -value   => '',      -value   => '',
     -expires => '-10y',);      -expires => '-10y',);
     $r->header_out('Set-cookie' => $c);      $r->headers_out->add('Set-cookie' => $c);
       if ($env{'user.linkedenv'}) {
           my $linked = new CGI::Cookie(-name    => 'lonLinkID',
                                        -value   => '',
                                        -expires => '-10y',);
           $r->headers_out->add('Set-cookie' => $linked);
       }
   
     if ($r->header_only) {      if ($r->header_only) {
  $r->send_http_header;   $r->send_http_header;

Removed from v.1.34  
changed lines
  Added in v.1.36


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