--- loncom/metadata_database/searchcat.pl 2016/01/31 21:25:49 1.84 +++ loncom/metadata_database/searchcat.pl 2016/06/19 04:28:08 1.85 @@ -2,7 +2,7 @@ # The LearningOnline Network # searchcat.pl "Search Catalog" batch script # -# $Id: searchcat.pl,v 1.84 2016/01/31 21:25:49 raeburn Exp $ +# $Id: searchcat.pl,v 1.85 2016/06/19 04:28:08 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -208,13 +208,20 @@ foreach my $dom (@domains) { closedir RESOURCES; &log(5,'users = '.$dom.':'.join(',',@homeusers)); # + my %courses; if ($oneuser) { + %courses = &courseiddump($dom,'.',1,'.','.',$oneuser,undef, + undef,'.'); @homeusers=($oneuser); + } else { + # get courseIDs for domain on current machine + %courses=&Apache::lonnet::courseiddump($dom,'.',1,'.','.','.',1,[$hostid],'.'); } # # Loop through the users foreach my $user (@homeusers) { + next if (exists($courses{$dom.'_'.$user})); &log(0,"=== User: ".$user); &process_dynamic_metadata($user,$dom); # @@ -228,7 +235,7 @@ foreach my $dom (@domains) { }, join('/',($Apache::lonnet::perlvar{'lonDocRoot'},'res',$dom,$user)) ); } # Search for all users and public portfolio files - my (%allusers,%portusers,%courses); + my (%allusers,%portusers); if ($oneuser) { %portusers = ( $oneuser => '', @@ -236,11 +243,7 @@ foreach my $dom (@domains) { %allusers = ( $oneuser => '', ); - %courses = &courseiddump($dom,'.',1,'.','.',$oneuser,undef, - undef,'.'); } else { - # get courseIDs for domain on current machine - %courses=&Apache::lonnet::courseiddump($dom,'.',1,'.','.','.',1,[$hostid],'.'); my $dir = $Apache::lonnet::perlvar{lonUsersDir}.'/'.$dom; &descend_tree($dom,$dir,0,\%portusers,\%allusers); }