--- loncom/lonnet/perl/lonnet.pm 2020/09/28 13:08:57 1.1425 +++ loncom/lonnet/perl/lonnet.pm 2020/10/01 10:16:34 1.1426 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.1425 2020/09/28 13:08:57 raeburn Exp $ +# $Id: lonnet.pm,v 1.1426 2020/10/01 10:16:34 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -8290,7 +8290,7 @@ sub allowed { } elsif ($noblockcheck) { $thisallowed='F'; } else { - my @blockers = &has_comm_blocking($priv,$symb,$refuri,$ignorecache); + my @blockers = &has_comm_blocking($priv,'',$refuri,'',1); if (@blockers > 0) { $thisallowed = 'B'; } else { @@ -8408,7 +8408,7 @@ sub allowed { } elsif ($noblockcheck) { $thisallowed.=$value; } else { - my @blockers = &has_comm_blocking($priv,'',$refuri,$ignorecache); + my @blockers = &has_comm_blocking($priv,'',$refuri,'',1); if (@blockers > 0) { $thisallowed = 'B'; } else { @@ -8829,7 +8829,7 @@ sub get_commblock_resources { } sub has_comm_blocking { - my ($priv,$symb,$uri,$nosymbcache,$blocked,$blocks) = @_; + my ($priv,$symb,$uri,$nosymbcache,$noenccheck,$blocked,$blocks) = @_; my @blockers; return unless ($env{'request.course.id'}); return unless ($priv eq 'bre'); @@ -8839,7 +8839,7 @@ sub has_comm_blocking { return unless (keys(%cachedblockers) > 0); my (%possibles,@symbs); if (!$symb) { - $symb = &symbread($uri,1,1,'',\%possibles,$nosymbcache); + $symb = &symbread($uri,1,1,1,\%possibles,$nosymbcache,$noenccheck); } if ($symb) { @symbs = ($symb); @@ -13310,7 +13310,7 @@ sub deversion { sub symbread { my ($thisfn,$donotrecurse,$ignorecachednull,$checkforblock,$possibles, - $nocache)=@_; + $nocache,$noenccheck)=@_; my $cache_str='request.symbread.cached.'.$thisfn; if (defined($env{$cache_str}) && !$nocache) { unless (ref($possibles) eq 'HASH') { @@ -13362,7 +13362,7 @@ sub symbread { untie(%hash); } if ($syval) { - my @blockers = &has_comm_blocking('bre',$syval,$thisfn,$nocache); + my @blockers = &has_comm_blocking('bre',$syval,$thisfn,$nocache,$noenccheck); if (@blockers) { $syval=''; } @@ -13405,7 +13405,7 @@ sub symbread { } if ($checkforblock) { unless ($bighash{'randomout_'.$ids} || $env{'request.role.adv'}) { - my @blockers = &has_comm_blocking('bre',$syval,$bighash{'src_'.$ids}); + my @blockers = &has_comm_blocking('bre',$syval,$bighash{'src_'.$ids},'',$noenccheck); if (@blockers) { $syval = ''; untie(%bighash); @@ -13431,9 +13431,9 @@ sub symbread { my $poss_syval=&encode_symb($bighash{'map_id_'.$mapid}, $resid,$thisfn); next if ($bighash{'randomout_'.$id} && !$env{'request.role.adv'}); - next unless ($bighash{'encrypted_'.$id} eq $env{'request.enc'}); + next unless (($noenccheck) || ($bighash{'encrypted_'.$id} eq $env{'request.enc'})); if ($checkforblock) { - my @blockers = &has_comm_blocking('bre',$poss_syval,$file); + my @blockers = &has_comm_blocking('bre',$poss_syval,$file,'',$noenccheck); if (@blockers > 0) { $syval = ''; } else {