--- loncom/enrollment/Autoupdate.pl 2007/04/03 17:51:52 1.4 +++ loncom/enrollment/Autoupdate.pl 2007/05/29 21:09:47 1.8 @@ -1,7 +1,7 @@ #!/usr/bin/perl # # Automated Userinfo update script -# $Id: Autoupdate.pl,v 1.4 2007/04/03 17:51:52 raeburn Exp $ +# $Id: Autoupdate.pl,v 1.8 2007/05/29 21:09:47 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -31,12 +31,23 @@ use Apache::lonnet; use Apache::loncommon; use Apache::lonlocal; + use LONCAPA::Configuration; use LONCAPA; - my @info = ('inststatus','lockedname','lastname','firstname','id'); + my $perlvarref = LONCAPA::Configuration::read_conf('loncapa.conf'); + my $logfile = $$perlvarref{'lonDaemons'}.'/logs/autoupdate.log'; + my $hostid = $perlvarref->{'lonHostID'}; + my @info = ('inststatus','lockedname','internalname','lastname', + 'firstname','id'); + # Initialize language handler + &Apache::lonlocal::get_language_handle(); # find out which users we need to examine my @domains = sort(&Apache::lonnet::current_machine_domains()); foreach my $dom (@domains) { + my $primaryhost_id = &Apache::lonnet::domain($dom,'primary'); + if ($primaryhost_id ne $hostid) { + next; + } my %domconfig = &Apache::lonnet::get_dom('configuration',['autoupdate'], $dom); #only run if configured to @@ -49,6 +60,8 @@ } } next if (!$run_update); + open(my $fh,">>$logfile"); + print $fh ("********************\n".localtime(time).' '.&mt('Autoupdate messages start for domain: [_1]',$dom).' --'."\n"); # get user information my (%instusers,%instids); next if (&localenroll::allusers_info($dom,\%instusers,\%instids) ne 'ok'); @@ -138,7 +151,7 @@ } else { if (!exists($users{$instids{$userhash{'id'}}})) { $unamechg{$uname} = $instids{$userhash{'id'}}; - print &mt('Username change to [_1] detected for [_2] in domain [_3].',$unamechg{$uname},$uname,$dom)."\n"; + print $fh (&mt('Username change to [_1] detected for [_2] in domain [_3].',$unamechg{$uname},$uname,$dom)."\n"); } } } @@ -148,9 +161,11 @@ if (keys(%possnames) > 0) { foreach my $uname (keys(%possnames)) { my $altnames = join(' or ',@{$possnames{$uname}}); - print &mt('Possible username change to [_1] detected for [_2] in domain [_3].',$altnames,$uname,$dom)."\n"; + print $fh (&mt('Possible username change to [_1] detected for [_2] in domain [_3].',$altnames,$uname,$dom)."\n"); } } + print $fh ("-- ".&Apache::lonlocal::locallocaltime(time).' '.&mt('Autoupdate messages end')."\n*******************\n\n"); + close($fh); } sub descend_tree { @@ -212,8 +227,8 @@ sub affiliations_check { my ($userhash,$insthashref) = @_; my (@inststatuses,$insttypechg);; if (ref($insthashref) eq 'HASH') { - if (ref($insthashref->{type}) eq 'ARRAY') { - @inststatuses = @{$insthashref->{type}}; + if (ref($insthashref->{'inststatus'}) eq 'ARRAY') { + @inststatuses = @{$insthashref->{'inststatus'}}; } } my @currstatuses = &unescape(split(/:/,$userhash->{'inststatus'}));