version 1.78, 2010/03/26 13:29:31
|
version 1.79, 2013/07/25 19:11:10
|
Line 270 foreach my $dom (@domains) {
|
Line 270 foreach my $dom (@domains) {
|
&portfolio_logging(%portmetalog); |
&portfolio_logging(%portmetalog); |
} |
} |
} |
} |
|
my (%names_by_id,,%ids_by_name,%idstodelete,%idstoadd,%duplicates); |
|
unless ($simulate || $oneuser) { |
|
my $idshashref; |
|
$idshashref = &tie_domain_hash($dom, "ids", &GDBM_WRCREAT()); |
|
if (ref($idshashref) eq 'HASH') { |
|
%names_by_id = %{$idshashref}; |
|
while (my ($id,$uname) = each(%{$idshashref}) ) { |
|
$id = &unescape($id); |
|
$uname = &unescape($uname); |
|
$names_by_id{$id} = $uname; |
|
push(@{$ids_by_name{$uname}},$id); |
|
} |
|
&untie_domain_hash($idshashref); |
|
} |
|
} |
# Update allusers |
# Update allusers |
foreach my $uname (keys(%allusers)) { |
foreach my $uname (keys(%allusers)) { |
next if (exists($courses{$dom.'_'.$uname})); |
next if (exists($courses{$dom.'_'.$uname})); |
my %userdata = |
my %userdata = |
&Apache::lonnet::get('environment',['firstname','lastname', |
&Apache::lonnet::get('environment',['firstname','lastname', |
'middlename','generation','id','permanentemail'],$dom,$uname); |
'middlename','generation','id','permanentemail'],$dom,$uname); |
|
unless ($simulate || $oneuser) { |
|
my $addid; |
|
if ($userdata{'id'} ne '') { |
|
$addid = $userdata{'id'}; |
|
$addid=~tr/A-Z/a-z/; |
|
} |
|
if (exists($ids_by_name{$uname})) { |
|
if (ref($ids_by_name{$uname}) eq 'ARRAY') { |
|
if (scalar(@{$ids_by_name{$uname}}) > 1) { |
|
&log(0,"Multiple employee/student IDs found in ids.db for $uname:$dom -- ".join(', ',@{$ids_by_name{$uname}})); |
|
} |
|
foreach my $id (@{$ids_by_name{$uname}}) { |
|
if ($id eq $userdata{'id'}) { |
|
undef($addid); |
|
} else { |
|
$idstodelete{$id} = $uname; |
|
} |
|
} |
|
} |
|
} |
|
if ($addid ne '') { |
|
if (exists($idstoadd{$addid})) { |
|
push(@{$duplicates{$addid}},$uname); |
|
} else { |
|
if ((exists($names_by_id{$addid})) && ($names_by_id{$addid} ne $uname)) { |
|
&log(0,"In ids.db ($dom) $addid => $names_by_id{$addid} will be replaced by $addid => $uname"); |
|
} |
|
$idstoadd{$addid} = $uname; |
|
} |
|
} |
|
} |
|
|
$userdata{'username'} = $uname; |
$userdata{'username'} = $uname; |
$userdata{'domain'} = $dom; |
$userdata{'domain'} = $dom; |
my %alluserslog = |
my %alluserslog = |
Line 285 foreach my $dom (@domains) {
|
Line 332 foreach my $dom (@domains) {
|
&log(0,$alluserslog{$item}); |
&log(0,$alluserslog{$item}); |
} |
} |
} |
} |
|
unless ($simulate || $oneuser) { |
|
if (keys(%idstodelete) > 0) { |
|
my %resulthash = &Apache::lonnet::iddel($dom,\%idstodelete,$hostid); |
|
if ($resulthash{$hostid} eq 'ok') { |
|
foreach my $id (sort(keys(%idstodelete))) { |
|
&log(0,"Record deleted from ids.db for $dom -- $id => ".$idstodelete{$id}); |
|
} |
|
} else { |
|
&log(0,"Error: '$resulthash{$hostid}' occurred when attempting to delete records from ids.db for $dom"); |
|
} |
|
} |
|
if (keys(%idstoadd) > 0) { |
|
my $putresult = &Apache::lonnet::put_dom('ids',\%idstoadd,$dom,$hostid); |
|
if ($putresult eq 'ok') { |
|
foreach my $id (sort(keys(%idstoadd))) { |
|
&log(0,"Record added to ids.db for $dom -- $id => ".$idstoadd{$id}); |
|
} |
|
} else { |
|
&log(0,"Error: '$putresult' occurred when attempting to add records to ids.db for $dom"); |
|
} |
|
} |
|
if (keys(%duplicates) > 0) { |
|
foreach my $id (sort(keys(%duplicates))) { |
|
&log(0,"Duplicate IDs found for entries to add to ids.db in $dom -- $id => $idstodelete{$id}"); |
|
} |
|
} |
|
} |
} |
} |
|
|
# |
# |