[LON-CAPA-cvs] cvs: rat / lonuserstate.pm

raeburn raeburn at source.lon-capa.org
Sat Sep 6 14:16:16 EDT 2025


raeburn		Sat Sep  6 18:16:16 2025 EDT

  Modified files:              
    /rat	lonuserstate.pm 
  Log:
  - If resource level parameter for part 0 is set to "no" for encrypturl in
    the Parameter Manager it will override value of "yes" set for "URL hidden"
    for resource in the XML of the map containing it.
  
  
Index: rat/lonuserstate.pm
diff -u rat/lonuserstate.pm:1.171 rat/lonuserstate.pm:1.172
--- rat/lonuserstate.pm:1.171	Mon May 26 19:55:11 2025
+++ rat/lonuserstate.pm	Sat Sep  6 18:16:16 2025
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Construct and maintain state and binary representation of course for user
 #
-# $Id: lonuserstate.pm,v 1.171 2025/05/26 19:55:11 raeburn Exp $
+# $Id: lonuserstate.pm,v 1.172 2025/09/06 18:16:16 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -1150,6 +1150,20 @@
 	my $symb=&Apache::lonnet::encode_symb($hash{'map_id_'.$mapid},$resid,$hash{'src_'.$rid});
 	my $hidden=&Apache::lonnet::EXT('resource.0.hiddenresource',$symb);
 
+        my @recurseup;
+        if ($hash{'is_map_'.$rid}) {
+            my ($cdom,$cnum) = split(/_/,$cid);
+            my $mapsrc = $hash{'src_'.$rid};
+            my $map_pc = $hash{'map_pc_'.$mapsrc};
+            my @pcs = split(/,/,$hash{'map_hierarchy_'.$map_pc});
+            shift(@pcs);
+            @recurseup = map { &Apache::lonnet::declutter($hash{'map_id_'.$_}) } reverse(@pcs);
+        } else {
+            my @pcs = split(/,/,$hash{'map_hierarchy_'.$mapid});
+            shift(@pcs);
+            @recurseup = map { &Apache::lonnet::declutter($hash{'map_id_'.$_}) } reverse(@pcs);
+        }
+
 	if ($hdnflag || lc($hidden) eq 'yes') {
 	    $hiddenurl{$rid}=1;
 	}
@@ -1157,22 +1171,23 @@
 	    delete($hiddenurl{$rid});
 	}
 
-	my $encrypt=&Apache::lonnet::EXT('resource.0.encrypturl',$symb);
-	if ($encflag || lc($encrypt) eq 'yes') { $encurl{$rid}=1; }
+        my $encrypt=&Apache::lonnet::EXT('resource.0.encrypturl',$symb,'','','','',$cid,\@recurseup);
+        if ($encflag || lc($encrypt) eq 'yes') {
+            $encurl{$rid}=1;
+        }
+        if (!$encflag && lc($encrypt) eq 'no') {
+            delete($encurl{$rid});
+        }
 
 	if (($retfrid eq '') && ($hash{'src_'.$rid})
 	    && ($hash{'src_'.$rid}!~/\.sequence$/)) {
 	    $retfrid=$rid;
 	}
 
-        my (@deeplink, at recurseup);
+        my @deeplink;
         if ($hash{'is_map_'.$rid}) {
             my ($cdom,$cnum) = split(/_/,$cid);
             my $mapsrc = $hash{'src_'.$rid};
-            my $map_pc = $hash{'map_pc_'.$mapsrc};
-            my @pcs = split(/,/,$hash{'map_hierarchy_'.$map_pc});
-            shift(@pcs);
-            @recurseup = map { &Apache::lonnet::declutter($hash{'map_id_'.$_}) } reverse(@pcs);
             my $mapname = &Apache::lonnet::declutter(&Apache::lonnet::deversion($mapsrc));
             my $deeplinkval = &get_mapparam($env{'user.name'},$env{'user.domain'},$cnum,$cdom,
                                             $rid,$mapname,'0.deeplink',\@recurseup);
@@ -1180,9 +1195,6 @@
                 @deeplink = ($deeplinkval,'map');
             }
         } else {
-            my @pcs = split(/,/,$hash{'map_hierarchy_'.$mapid});
-            shift(@pcs);
-            @recurseup = map { &Apache::lonnet::declutter($hash{'map_id_'.$_}) } reverse(@pcs);
             @deeplink = &Apache::lonnet::EXT('resource.0.deeplink',$symb,'','','','',$cid,\@recurseup);
         }
         unless (@deeplink < 2) {




More information about the LON-CAPA-cvs mailing list