--- loncom/enrollment/Autoupdate.pl 2007/11/15 21:24:56 1.11 +++ loncom/enrollment/Autoupdate.pl 2010/03/21 21:06:00 1.16 @@ -1,7 +1,7 @@ #!/usr/bin/perl # # Automated Userinfo update script -# $Id: Autoupdate.pl,v 1.11 2007/11/15 21:24:56 raeburn Exp $ +# $Id: Autoupdate.pl,v 1.16 2010/03/21 21:06:00 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -42,7 +42,7 @@ exit; } my @info = ('inststatus','lockedname','internalname','lastname', - 'firstname','id','permanentemail'); + 'firstname','middlename','generation','id','permanentemail'); # Initialize language handler &Apache::lonlocal::get_language_handle(); # find out which users we need to examine @@ -82,7 +82,7 @@ (my $insttypechg,@inststatuses) = &affiliations_check(\%userhash,$instusers{$uname}); if ($insttypechg) { - my $inststatusstr = join(':',&escape(@inststatuses)); + my $inststatusstr = join(':',map { &escape($_) } (@inststatuses)); my %statushash = ( inststatus => $inststatusstr ); my $statusres = &Apache::lonnet::put('environment',\%statushash,$dom,$uname); } @@ -112,7 +112,7 @@ if ($settings->{'classlists'} == 1) { if ($field eq 'id') { $changes{'id'} = 1; - } elsif ($field eq 'lastname' || $field eq 'firstname' || $field eq 'middlename' || $field eq 'gen') { + } elsif ($field eq 'lastname' || $field eq 'firstname' || $field eq 'middlename' || $field eq 'generation') { $changes{'fullname'} = 1; } } @@ -121,10 +121,14 @@ # Make the change if ($changed) { my %userupdate; + foreach my $item ('lastname','firstname','middlename','generation','id', + 'permanentemail') { + $userupdate{$item} = $userhash{$item}; + } foreach my $field (@fields) { $userupdate{$field} = $instusers{$uname}{$field}; } - my $modresult = &Apache::lonnet::modifyuser($dom,$uname,$userupdate{'id'},undef,undef,$userupdate{'firstname'},$userupdate{'middlename'},$userupdate{'lastname'},$userupdate{'generation'},1,$hostid,$userupdate{'permanentemail'}); + my $modresult = &Apache::lonnet::modifyuser($dom,$uname,$userupdate{'id'},undef,undef,$userupdate{'firstname'},$userupdate{'middlename'},$userupdate{'lastname'},$userupdate{'generation'},1,$hostid,$userupdate{'permanentemail'},undef,\@fields); if ($modresult eq 'ok') { print $fh "User change: $uname:$dom; New values: 1.Name: $userupdate{'firstname'} $userupdate{'middlename'} $userupdate{'lastname'} $userupdate{'generation'}; 2. StuID: $userupdate{'id'}; 3. Email: $userupdate{'permanentemail'}.\n"; if ($settings->{'classlists'} == 1) { @@ -205,7 +209,7 @@ sub affiliations_check { @inststatuses = @{$insthashref->{'inststatus'}}; } } - my @currstatuses = &unescape(split(/:/,$userhash->{'inststatus'})); + my @currstatuses = map { &unescape($_); } (split(/:/,$userhash->{'inststatus'})); foreach my $status (@inststatuses) { if (!grep/^\Q$status\E/,@currstatuses) { $insttypechg = 1;