--- loncom/interface/lonindexer.pm 2017/05/22 19:18:40 1.226
+++ loncom/interface/lonindexer.pm 2025/03/18 19:36:59 1.232
@@ -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.232 2025/03/18 19:36:59 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;
@@ -583,7 +584,7 @@ END
$r->print(&Apache::loncommon::start_data_table("LC_tableBrowseRes")
.&Apache::loncommon::start_data_table_header_row());
$r->print("
".&mt('Name')."
\n");
- $r->print("
\n");
+ $r->print('
'.&mt('Add to Stored Links')."
\n");
$r->print("
".&mt('Title')."
\n")
if ($hash{'display_attrs_0'} == 1);
$r->print('
'.&mt("Size")." (".&mt("bytes").") ".
@@ -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;
@@ -1101,8 +1121,13 @@ $r->print ('print (" $listname ");
+ $r->print (" $listname ");
$quotable_filelink = &Apache::loncommon::escape_single($filelink.'.meta');
&Apache::loncommon::inhibit_menu_check(\$quotable_filelink);
$r->print (" (".&mt('metadata').") ");