Diff for /loncom/interface/lonexttool.pm between versions 1.16 and 1.17

version 1.16, 2018/01/01 01:29:38 version 1.17, 2018/01/04 12:37:49
Line 274  sub lti_params { Line 274  sub lti_params {
     unless (grep(/^\Q$ltirole\E$/,@possroles)) {      unless (grep(/^\Q$ltirole\E$/,@possroles)) {
         $ltirole = 'Learner';          $ltirole = 'Learner';
     }      }
       my @possdigest;
     my $digest_user = &Encode::decode_utf8($uname.':'.$udom);      my $digest_user = &Encode::decode_utf8($uname.':'.$udom);
     $digest_user = &Digest::SHA::sha1_hex($digest_user);      $digest_user = &Digest::SHA::sha1_hex($digest_user);
       push(@possdigest,$digest_user);
     if ($env{'course.'.$env{'request.course.id'}.'.languages'} ne '') {      if ($env{'course.'.$env{'request.course.id'}.'.languages'} ne '') {
         @userlangs=(@userlangs,split(/\s*(\,|\;|\:)\s*/,          @userlangs=(@userlangs,split(/\s*(\,|\;|\:)\s*/,
                     $env{'course.'.$env{'request.course.id'}.'.languages'}));                      $env{'course.'.$env{'request.course.id'}.'.languages'}));
Line 298  sub lti_params { Line 300  sub lti_params {
     if ($symb) {      if ($symb) {
         $digest_symb = &Encode::decode_utf8($symb);          $digest_symb = &Encode::decode_utf8($symb);
         $digest_symb = &Digest::SHA::sha1_hex($digest_symb);          $digest_symb = &Digest::SHA::sha1_hex($digest_symb);
           push(@possdigest,$digest_symb);
         my $navmap = Apache::lonnavmaps::navmap->new();          my $navmap = Apache::lonnavmaps::navmap->new();
         if (ref($navmap)) {          if (ref($navmap)) {
             my $res = $navmap->getBySymb($symb);              my $res = $navmap->getBySymb($symb);
Line 338  sub lti_params { Line 341  sub lti_params {
             $crsprotocol = 'http';              $crsprotocol = 'http';
         }          }
         if (($passback) || ($roster)) {          if (($passback) || ($roster)) {
               my (%currdigest,%digesthash);
               if (@possdigest) {
                   %currdigest = &Apache::lonnet::get('exttools',\@possdigest,
                                                      $cdom,$cnum);
               }
             if ($passback) {              if ($passback) {
                 $ltiparams{'lis_outcome_service_url'} = $crsprotocol.'://'.$crshostname.'/adm/service/passback';                  $ltiparams{'lis_outcome_service_url'} = $crsprotocol.'://'.$crshostname.'/adm/service/passback';
                 $ltiparams{'ext_ims_lis_basic_outcome_url'} = $ltiparams{'lis_outcome_service_url'};                  $ltiparams{'ext_ims_lis_basic_outcome_url'} = $ltiparams{'lis_outcome_service_url'};
Line 355  sub lti_params { Line 363  sub lti_params {
                     }                      }
                 }                  }
             }              }
             my %digesthash;  
             if ($ltiparams{'lis_result_sourcedid'}) {  
                 $digesthash{$ltiparams{'lis_result_sourcedid'}} = "$idx\0".time;   
             }  
             if ($ltiparams{'ext_ims_lis_memberships_id'}) {  
                 $digesthash{$ltiparams{'ext_ims_lis_memberships_id'}} = "$idx\0".time;   
             }  
             if (($digest_symb) && ($gradesecret || $rostersecret)) {              if (($digest_symb) && ($gradesecret || $rostersecret)) {
                 $digesthash{$digest_symb} = $symb;                  unless ((exists($currdigest{$digest_symb})) && ($currdigest{$digest_symb} eq $symb)) {
                       $digesthash{$digest_symb} = $symb;
                   }
             }              }
             if (($passback) && ($gradesecret)) {              if (($passback) && ($gradesecret)) {
                 $digesthash{$digest_user} = $uname.':'.$udom;                  unless ((exists($currdigest{$digest_user})) && ($currdigest{$digest_user} eq $uname.':'.$udom)) {
                       $digesthash{$digest_user} = $uname.':'.$udom;
                   }
             }              }
             if (keys(%digesthash)) {              if (keys(%digesthash)) {
                 &Apache::lonnet::put('exttools',\%digesthash,$cdom,$cnum);                  &Apache::lonnet::put('exttools',\%digesthash,$cdom,$cnum);

Removed from v.1.16  
changed lines
  Added in v.1.17


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