Diff for /loncom/metadata_database/searchcat.pl between versions 1.79 and 1.80

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) {

Removed from v.1.79  
changed lines
  Added in v.1.80


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>