Diff for /loncom/auth/migrateuser.pm between versions 1.60 and 1.61

version 1.60, 2022/05/21 06:28:35 version 1.61, 2022/06/18 02:10:18
Line 285  sub ip_changed { Line 285  sub ip_changed {
                     'username'        => $dataref->{'username'},                      'username'        => $dataref->{'username'},
                     'sessionserver'   => $lonhost,                      'sessionserver'   => $lonhost,
                   );                    );
         my @names = ('origurl','symb','role','linkprot','linkkey');          my @names = ('origurl','symb','role','linkprotuser','linkprot','linkkey');
         foreach my $name (@names) {          foreach my $name (@names) {
             if ($dataref->{$name} ne '') {              if ($dataref->{$name} ne '') {
                 $info{$name} = $dataref->{$name};                  $info{$name} = $dataref->{$name};
Line 308  sub ip_changed { Line 308  sub ip_changed {
 }  }
   
 sub logout {  sub logout {
     my ($r,$ip,$handle,$data,$lti_env) = @_;      my ($r,$ip,$handle,$data,$lti_env,$linkprot_info) = @_;
     my $lonidsdir=$r->dir_config('lonIDsDir');      my $lonidsdir=$r->dir_config('lonIDsDir');
     if (unlink("$lonidsdir/$handle.id")) {      if (unlink("$lonidsdir/$handle.id")) {
         if (($env{'user.linkedenv'} =~ /^[a-f0-9]+_linked$/) &&          if (($env{'user.linkedenv'} =~ /^[a-f0-9]+_linked$/) &&
Line 335  sub logout { Line 335  sub logout {
                                 -expires => '-10y',);                                  -expires => '-10y',);
         $r->headers_out->add('Set-cookie' => $c);          $r->headers_out->add('Set-cookie' => $c);
     }      }
     my (%info,%user_info,%lti_info);  
     if (ref($lti_env) eq 'HASH') {  
         foreach my $key (sort(keys(%{$lti_env}))) {  
             if ($key =~ /^request\.(.+)$/) {  
                 $lti_info{$1} = $lti_env->{$key};  
             }  
         }  
     }  
     my $lonhost = $r->dir_config('lonHostID');      my $lonhost = $r->dir_config('lonHostID');
       my ($url,$token,%info,%user_info);
     if (ref($data) eq 'HASH') {      if (ref($data) eq 'HASH') {
         %user_info=('ip'       => $ip,          %user_info=('ip'       => $ip,
                     'domain'   => $data->{'domain'},                      'domain'   => $data->{'domain'},
Line 354  sub logout { Line 347  sub logout {
                     'symb'     => $data->{'symb'},                      'symb'     => $data->{'symb'},
                     'server'   => $lonhost);                      'server'   => $lonhost);
     }      }
     %info = (%user_info,%lti_info);      if (ref($linkprot_info) eq 'HASH') {
     my $token = &Apache::lonnet::tmpput(\%info,$lonhost);          if ($linkprot_info->{'linkprotuser'} ne '') {
     my $url = '/adm/migrateuser?token='.$token;              $token = &Apache::lonnet::tmpput($linkprot_info,$lonhost);
               $url = '/adm/login?ltoken='.$token;
           } else {
               foreach my $key (keys(%user_info)) {
                   if ($user_info{$key} eq '') {
                       delete($user_info{$key});
                   }
               }
               %info = (%user_info,%{$linkprot_info});
               $token = &Apache::lonnet::tmpput(\%info,$lonhost);
               $url = '/adm/migrateuser?token='.$token;
           }
       } else {
           my %lti_info;
           if (ref($lti_env) eq 'HASH') {
               foreach my $key (sort(keys(%{$lti_env}))) {
                   if ($key =~ /^request\.(.+)$/) {
                       $lti_info{$1} = $lti_env->{$key};
                   }
               }
           }
           %info = (%user_info,%lti_info);
           $token = &Apache::lonnet::tmpput(\%info,$lonhost);
           $url = '/adm/migrateuser?token='.$token;
       }
     $r->send_http_header;      $r->send_http_header;
     $r->print(      $r->print(
         &Apache::loncommon::start_page('Updating Session ...',undef,          &Apache::loncommon::start_page('Updating Session ...',undef,
Line 738  sub handler { Line 755  sub handler {
                     my %linkprot_env;                      my %linkprot_env;
                     foreach my $item ('linkprot','deeplink.login') {                      foreach my $item ('linkprot','deeplink.login') {
                         if ($data{$item}) {                          if ($data{$item}) {
                             $linkprot_env{'request.'.$item} = $data{$item};                              $linkprot_env{$item} = $data{$item};
                         }                          }
                     }                      }
                     &logout($r,$ip,$handle,\%data,\%linkprot_env);                      &logout($r,$ip,$handle,\%data,undef,\%linkprot_env);
                     return OK;                      return OK;
                 }                  }
                 &Apache::lonnet::appenv({'request.linkprot' => $data{'linkprot'}});                  &Apache::lonnet::appenv({'request.linkprot' => $data{'linkprot'}});
Line 891  sub handler { Line 908  sub handler {
                         $info{'checklaunch'} = 1;                          $info{'checklaunch'} = 1;
                     }                      }
                     my $token = &Apache::lonnet::tmpput(\%info,$r->dir_config('lonHostID'),'link');                      my $token = &Apache::lonnet::tmpput(\%info,$r->dir_config('lonHostID'),'link');
                     unless (($token eq 'con_lost') || ($token eq 'refused') ||                      unless (($token eq 'con_lost') || ($token eq 'refused') || ($token =~ /^error:/) ||
                             ($token eq 'unknown_cmd') || ($token eq 'no_such_host')) {                              ($token eq 'unknown_cmd') || ($token eq 'no_such_host')) {
                         $dest .= (($dest =~ /\?/) ? '&' : '?') . 'ttoken='.$token;                          $dest .= (($dest =~ /\?/) ? '&' : '?') . 'ttoken='.$token;
                     }                      }

Removed from v.1.60  
changed lines
  Added in v.1.61


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