version 1.79, 2013/07/25 19:11:10
|
version 1.80, 2013/08/12 16:52:00
|
Line 74 use IO::File;
|
Line 74 use IO::File;
|
use HTML::TokeParser; |
use HTML::TokeParser; |
use GDBM_File; |
use GDBM_File; |
use POSIX qw(strftime mktime); |
use POSIX qw(strftime mktime); |
|
use Mail::Send; |
|
|
use Apache::lonnet(); |
use Apache::lonnet(); |
|
|
Line 209 foreach my $dom (@domains) {
|
Line 210 foreach my $dom (@domains) {
|
if ($oneuser) { |
if ($oneuser) { |
@homeusers=($oneuser); |
@homeusers=($oneuser); |
} |
} |
|
|
# |
# |
# Loop through the users |
# Loop through the users |
foreach my $user (@homeusers) { |
foreach my $user (@homeusers) { |
Line 315 foreach my $dom (@domains) {
|
Line 317 foreach my $dom (@domains) {
|
if (exists($idstoadd{$addid})) { |
if (exists($idstoadd{$addid})) { |
push(@{$duplicates{$addid}},$uname); |
push(@{$duplicates{$addid}},$uname); |
} else { |
} 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; |
$idstoadd{$addid} = $uname; |
} |
} |
} |
} |
Line 344 foreach my $dom (@domains) {
|
Line 343 foreach my $dom (@domains) {
|
} |
} |
} |
} |
if (keys(%idstoadd) > 0) { |
if (keys(%idstoadd) > 0) { |
my $putresult = &Apache::lonnet::put_dom('ids',\%idstoadd,$dom,$hostid); |
my $idmessage = ''; |
if ($putresult eq 'ok') { |
my %newids; |
foreach my $id (sort(keys(%idstoadd))) { |
foreach my $addid (sort(keys(%idstoadd))) { |
&log(0,"Record added to ids.db for $dom -- $id => ".$idstoadd{$id}); |
if ((exists($names_by_id{$addid})) && ($names_by_id{$addid} ne $idstoadd{$addid}) && !($idstodelete{$addid})) { |
|
&log(0,"Two usernames associated with a single ID $addid in domain: $dom: $names_by_id{$addid} (current) and $idstoadd{$addid}\n"); |
|
$idmessage .= "$addid,$names_by_id{$addid},$idstoadd{$addid}\n"; |
|
} else { |
|
$newids{$addid} = $idstoadd{$addid}; |
|
} |
|
} |
|
if (keys(%newids) > 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 ($idmessage) { |
|
my $to = &Apache::loncommon::build_recipient_list(undef,'idconflictsmail',$dom); |
|
if ($to ne '') { |
|
my $msg = new Mail::Send; |
|
$msg->to($to); |
|
$msg->subject('LON-CAPA studentIDs conflict'); |
|
my $lonhost = $Apache::lonnet::perlvar{'lonHostID'}; |
|
my $hostname = &Apache::lonnet::hostname($lonhost); |
|
my $replytoaddress = 'do-not-reply@'.$hostname; |
|
$msg->add('Reply-to',$replytoaddress); |
|
$msg->add('From',"www@$hostname"); |
|
$msg->add('Content-type','text/plain; charset=UTF-8'); |
|
if (my $fh = $msg->open()) { |
|
print $fh |
|
'The following IDs are used for more than one user in your domain:'."\n". |
|
'Each row contains: Student/Employee ID, Current username in ids.db file, '. |
|
'Additional username'."\n\n". |
|
$idmessage; |
|
$fh->close; |
|
} |
} |
} |
} else { |
|
&log(0,"Error: '$putresult' occurred when attempting to add records to ids.db for $dom"); |
|
} |
} |
} |
} |
if (keys(%duplicates) > 0) { |
if (keys(%duplicates) > 0) { |