[LON-CAPA-cvs] cvs: loncom /interface lonindexer.pm

raeburn raeburn at source.lon-capa.org
Wed Aug 9 16:36:39 EDT 2017


raeburn		Wed Aug  9 20:36:39 2017 EDT

  Modified files:              
    /loncom/interface	lonindexer.pm 
  Log:
  - Trust settings.
  
  
Index: loncom/interface/lonindexer.pm
diff -u loncom/interface/lonindexer.pm:1.226 loncom/interface/lonindexer.pm:1.227
--- loncom/interface/lonindexer.pm:1.226	Mon May 22 19:18:40 2017
+++ loncom/interface/lonindexer.pm	Wed Aug  9 20:36:39 2017
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # Directory Indexer
 #
-# $Id: lonindexer.pm,v 1.226 2017/05/22 19:18:40 droeschl Exp $
+# $Id: lonindexer.pm,v 1.227 2017/08/09 20:36:39 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -94,6 +94,7 @@
 
 # --------------------------------------------------------------- get icon path
     my $iconpath= $r->dir_config('lonIconsURL') . "/";
+    my $defdom = &Apache::lonnet::default_login_domain();
 
 #SB my $fileclr='#ffffe6';
     my $line;
@@ -664,12 +665,12 @@
 	    pop @uri_com;
 	    my $upone = join('/', at uri_com);
 	    my @list = qw (0);
-	    &display_line ($r,'opened',$upone.'&viewOneUp',0,$upone, at list);
+	    &display_line ($r,$defdom,'opened',$upone.'&viewOneUp',0,$upone, at list);
 	    $indent = 1;
 	}
 
 # -------- recursively go through all the directories and output as appropriate
-	&scanDir ($r,$toplevel,$indent,\%hash);
+	&scanDir ($r,$toplevel,$indent,\%hash,$defdom);
 
 # -------------------------------------------------------------- end the tables
         $r->print(&Apache::loncommon::end_data_table());
@@ -697,7 +698,7 @@
 
 # ----------------------------------------------- recursive scan of a directory
 sub scanDir {
-    my ($r,$startdir,$indent,$hashref)=@_;
+    my ($r,$startdir,$indent,$hashref,$defdom)=@_;
     my $c = $r->connection();
     my ($compuri,$curdir);
     my $dirptr=16384;
@@ -753,8 +754,8 @@
 		}
 	    }
 	}
-	&display_line($r,$diropen,$line,$indent,$curdir,$hashref, at list);
-	&scanDir ($r,$compuri,$indent) if $diropen eq 'opened';
+	&display_line($r,$defdom,$diropen,$line,$indent,$curdir,$hashref, at list);
+	&scanDir ($r,$compuri,$indent,undef,$defdom) if $diropen eq 'opened';
     }
     $indent--;
 }
@@ -884,7 +885,7 @@
 
 # ------------------------------- displays one line in appropriate table format
 sub display_line {
-    my ($r,$diropen,$line,$indent,$startdir,$hashref, at list)=@_;
+    my ($r,$defdom,$diropen,$line,$indent,$startdir,$hashref, at list)=@_;
     my (@pathfn, $fndir);
 # there could be relative paths (files actually belonging into this directory)
 # or absolute paths (for example, from sequences)
@@ -950,6 +951,15 @@
 # Do we have permission to look at this?
     if($filecom[15] ne '1') { return OK if ((!&Apache::lonnet::allowed('bre',$pathprefix.$filecom[0])) && (!&Apache::lonnet::allowed('bro',$pathprefix.$filecom[0]))); }
 
+    if (($filecom[1] eq 'domain') && ($defdom ne $listname)) {
+        unless (&Apache::lonnet::will_trust('shared',$listname,$defdom)) {
+            return OK;   
+        }
+        unless (&Apache::lonnet::will_trust('content',$defdom,$listname)) {
+            return OK;
+        }
+    }
+
 # make absolute links appear on different background
 #SB    if ($absolute) { $fileclr='#ccdd99'; }
 
@@ -984,7 +994,17 @@
 
 # display user directory
     }
+
     if ($filecom[1] eq 'user') {
+        my $domain=(split(m|/|,$startdir))[2];
+        if ($defdom ne $domain) {
+            unless (&Apache::lonnet::will_trust('shared',$domain,$defdom)) {
+                return OK;
+            }
+            unless (&Apache::lonnet::will_trust('content',$defdom,$domain)) {
+                return OK;
+            }
+        }
 	# $r->print("<tr valign=$valign bgcolor=\"$fileclr\">$extrafield");
 	my $curdir = $startdir.$filecom[0].'/';
 	my $anchor = $curdir;




More information about the LON-CAPA-cvs mailing list