--- loncom/metadata_database/searchcat.pl 2007/04/11 22:44:18 1.76 +++ loncom/metadata_database/searchcat.pl 2007/07/25 23:17:43 1.77 @@ -2,7 +2,7 @@ # The LearningOnline Network # searchcat.pl "Search Catalog" batch script # -# $Id: searchcat.pl,v 1.76 2007/04/11 22:44:18 albertel Exp $ +# $Id: searchcat.pl,v 1.77 2007/07/25 23:17:43 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -123,6 +123,7 @@ my %oldnames = ( 'portfolio' => 'portfolio_metadata', 'access' => 'portfolio_access', 'addedfields' => 'portfolio_addedfields', + 'allusers' => 'allusers', ); my %newnames; @@ -172,7 +173,7 @@ foreach my $key (keys(%newnames)) { } # -# Create the new metadata and portfolio tables +# Create the new metadata, portfolio and allusers tables foreach my $key (keys(%newnames)) { if ($newnames{$key} ne '') { my $request = @@ -221,15 +222,18 @@ foreach my $dom (@domains) { no_chdir => 1, }, join('/',($Apache::lonnet::perlvar{'lonDocRoot'},'res',$dom,$user)) ); } - # Search for public portfolio files - my %portusers; + # Search for all users and public portfolio files + my (%allusers,%portusers); if ($oneuser) { %portusers = ( $oneuser => '', ); + %allusers = ( + $oneuser => '', + ); } else { my $dir = $Apache::lonnet::perlvar{lonUsersDir}.'/'.$dom; - &descend_tree($dir,0,\%portusers); + &descend_tree($dom,$dir,0,\%portusers,\%allusers); } foreach my $uname (keys(%portusers)) { my $urlstart = '/uploaded/'.$dom.'/'.$uname; @@ -257,6 +261,20 @@ foreach my $dom (@domains) { &portfolio_logging(%portmetalog); } } + # Update allusers + foreach my $uname (keys(%allusers)) { + my %userdata = + &Apache::lonnet::get('environment',['firstname','lastname', + 'middlename','generation','id','permanentemail'],$dom,$uname); + $userdata{'username'} = $uname; + $userdata{'domain'} = $dom; + my %alluserslog = + &LONCAPA::lonmetadata::process_allusers_data($dbh,$simulate, + \%newnames,$uname,$dom,\%userdata); + foreach my $item (keys(%alluserslog)) { + &log(0,$alluserslog{$item}); + } + } } # @@ -317,7 +335,7 @@ sub portfolio_logging { } sub descend_tree { - my ($dir,$depth,$alldomusers) = @_; + my ($dom,$dir,$depth,$allportusers,$alldomusers) = @_; if (-d $dir) { opendir(DIR,$dir); my @contents = grep(!/^\./,readdir(DIR)); @@ -325,10 +343,12 @@ sub descend_tree { $depth ++; foreach my $item (@contents) { if ($depth < 4) { - &descend_tree($dir.'/'.$item,$depth,$alldomusers); + &descend_tree($dom,$dir.'/'.$item,$depth,$allportusers,$alldomusers); } else { if (-e $dir.'/'.$item.'/file_permissions.db') { - + $$allportusers{$item} = ''; + } + if (!&Apache::lonnet::is_course($dom,$item)) { $$alldomusers{$item} = ''; } }