Diff for /loncom/lonnet/perl/lonnet.pm between versions 1.1462 and 1.1463

version 1.1462, 2021/08/01 19:28:11 version 1.1463, 2021/08/04 21:06:33
Line 7133  sub dump { Line 7133  sub dump {
     my $rep;      my $rep;
     if ($encrypt) {      if ($encrypt) {
         $rep=&reply("encrypt:edump:$udomain:$uname:$namespace:$regexp:$range",$uhome);          $rep=&reply("encrypt:edump:$udomain:$uname:$namespace:$regexp:$range",$uhome);
     } else {       } else {
         $rep=&reply("dump:$udomain:$uname:$namespace:$regexp:$range",$uhome);          $rep=&reply("dump:$udomain:$uname:$namespace:$regexp:$range",$uhome);
     }      }
     my @pairs=split(/\&/,$rep);      my @pairs=split(/\&/,$rep);
Line 9065  sub deeplink_check { Line 9065  sub deeplink_check {
         if ($deeplink eq '') {          if ($deeplink eq '') {
             $allow = 1;              $allow = 1;
         } else {          } else {
             my ($listed,$scope,$access) = split(/,/,$deeplink);              my ($state,$others,$listed,$scope,$protect) = split(/,/,$deeplink);
             if ($access eq 'any') {              if ($state ne 'only') {
                 $allow = 1;                  $allow = 1;
             } elsif ($deeplink_symb) {              } else {
                 if ($access eq 'only') {                  my $check_deeplink_entry;
                   if ($protect ne 'none') {
                       my ($acctype,$item) = split(/:/,$protect);
                       if (($acctype eq 'ltic') && ($env{'user.linkprotector'})) {
                           if (grep(/^\Q$item\Ec$/,split(/,/,$env{'user.linkprotector'}))) {
                               $check_deeplink_entry = 1
                           }
                       } elsif (($acctype eq 'ltid') && ($env{'user.linkprotector'})) {
                           if (grep(/^\Q$item\Ed$/,split(/,/,$env{'user.linkprotector'}))) {
                               $check_deeplink_entry = 1;
                           }
                       } elsif (($acctype eq 'key') && ($env{'user.deeplinkkey'})) {
                           if (grep(/^\Q$item\E$/,split(/,/,$env{'user.deeplinkkey'}))) {
                               $check_deeplink_entry = 1;
                           }
                       }
                   }
                   if (($protect eq 'none') || ($check_deeplink_entry)) {
                     if ($scope eq 'res') {                      if ($scope eq 'res') {
                         if ($symb eq $deeplink_symb) {                          if ($symb eq $deeplink_symb) {
                             $allow = 1;                              $allow = 1;
                         }                          }
                     } elsif (($scope eq 'map') || ($scope eq 'rec')) {                      } elsif (($scope eq 'map') || ($scope eq 'rec')) {
                         my ($map_from_symb,$map_from_login);                           my ($map_from_symb,$map_from_login);
                         $map_from_symb = &deversion((&decode_symb($symb))[0]);                          $map_from_symb = &deversion((&decode_symb($symb))[0]);
                         if ($deeplink_symb =~ /\.(page|sequence)$/) {                          if ($deeplink_symb =~ /\.(page|sequence)$/) {
                             $map_from_login = &deversion((&decode_symb($deeplink_symb))[2]);                              $map_from_login = &deversion((&decode_symb($deeplink_symb))[2]);
Line 9093  sub deeplink_check { Line 9110  sub deeplink_check {
                             }                              }
                         }                          }
                     }                      }
                 } else {  
                     my ($acctype,$item) = split(/:/,$access);  
                     if (($acctype eq 'lti') && ($env{'user.linkprotector'})) {  
                         if (grep(/^\Q$item\E$/,split(/,/,$env{'user.linkprotector'}))) {  
                             my %tinyurls = &get('tiny',[$symb],$cdom,$cnum);  
                             if (grep(/\Q$tinyurls{$symb}\E$/,split(/,/,$env{'user.linkproturis'}))) {  
                                 $allow = 1;  
                             }  
                         }  
                     } elsif (($acctype eq 'key') && ($env{'user.deeplinkkey'})) {  
                         if (grep(/^\Q$item\E$/,split(/,/,$env{'user.deeplinkkey'}))) {  
                             my %tinyurls = &get('tiny',[$symb],$cdom,$cnum);  
                             if (grep(/\Q$tinyurls{$symb}\E$/,split(/,/,$env{'user.keyedlinkuri'}))) {  
                                 $allow = 1;  
                             }  
                         }  
                     }  
                 }                  }
             }              }
         }          }
Line 12215  sub get_domain_lti { Line 12215  sub get_domain_lti {
     return %lti;      return %lti;
 }  }
   
   sub get_course_lti {
       my ($cnum,$cdom) = @_;
       my $hashid=$cdom.'_'.$cnum;
       my %courselti;
       my ($result,$cached)=&is_cached_new('courselti',$hashid);
       if (defined($cached)) {
           if (ref($result) eq 'HASH') {
               %courselti = %{$result};
           }
       } else {
           %courselti = &dump('lti',$cdom,$cnum,undef,undef,undef,1);
           my $cachetime = 24*60*60;
           &do_cache_new('courselti',$hashid,\%courselti,$cachetime);
       }
       return %courselti;
   }
   
 sub get_numsuppfiles {  sub get_numsuppfiles {
     my ($cnum,$cdom,$ignorecache)=@_;      my ($cnum,$cdom,$ignorecache)=@_;
     my $hashid=$cnum.':'.$cdom;      my $hashid=$cnum.':'.$cdom;

Removed from v.1.1462  
changed lines
  Added in v.1.1463


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