--- loncom/interface/lonindexer.pm 2017/05/22 19:18:40 1.226 +++ loncom/interface/lonindexer.pm 2017/08/09 20:36:39 1.227 @@ -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 @@ sub handler { # --------------------------------------------------------------- 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 @@ END pop @uri_com; my $upone = join('/',@uri_com); my @list = qw (0); - &display_line ($r,'opened',$upone.'&viewOneUp',0,$upone,@list); + &display_line ($r,$defdom,'opened',$upone.'&viewOneUp',0,$upone,@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 @@ END # ----------------------------------------------- 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 @@ sub scanDir { } } } - &display_line($r,$diropen,$line,$indent,$curdir,$hashref,@list); - &scanDir ($r,$compuri,$indent) if $diropen eq 'opened'; + &display_line($r,$defdom,$diropen,$line,$indent,$curdir,$hashref,@list); + &scanDir ($r,$compuri,$indent,undef,$defdom) if $diropen eq 'opened'; } $indent--; } @@ -884,7 +885,7 @@ sub match_ext { # ------------------------------- displays one line in appropriate table format sub display_line { - my ($r,$diropen,$line,$indent,$startdir,$hashref,@list)=@_; + my ($r,$defdom,$diropen,$line,$indent,$startdir,$hashref,@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 @@ sub display_line { # 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 @@ $r->print ('$extrafield"); my $curdir = $startdir.$filecom[0].'/'; my $anchor = $curdir;