Diff for /loncom/build/make_domain_coordinator.pl between versions 1.20 and 1.27

version 1.20, 2011/11/17 14:29:51 version 1.27, 2015/01/03 02:45:22
Line 96  use Term::ReadKey; Line 96  use Term::ReadKey;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::lonlocal;  use Apache::lonlocal;
 use DBI;  use DBI;
   use Storable qw(nfreeze);
 use strict;  use strict;
   
 =pod  =pod
Line 206  while ((!$got_passwd) && ($trial < $maxt Line 207  while ((!$got_passwd) && ($trial < $maxt
               &mt('Please try again.')."\n");                &mt('Please try again.')."\n");
     } else {      } else {
         my $pbad=0;          my $pbad=0;
         foreach (split(//,$passwd)) {if ((ord($_)<32)||(ord($_)>126)){$pbad=1;}}          foreach (split(//,$firstpass)) {if ((ord($_)<32)||(ord($_)>126)){$pbad=1;}}
         if ($pbad) {          if ($pbad) {
             print(&mt('Password contains invalid characters.')."\n".              print(&mt('Password contains invalid characters.')."\n".
                   &mt('Password must consist of standard ASCII characters')."\n".                    &mt('Password must consist of standard ASCII characters.')."\n".
                   &mt('Please try again.')."\n");                    &mt('Please try again.')."\n");
         } else {          } else {
             $secondpass = &get_password(&mt('Enter password a second time'));              $secondpass = &get_password(&mt('Enter password a second time'));
Line 359  if ($pbad) { Line 360  if ($pbad) {
           "\n");            "\n");
 }  }
     
 my $distro;  my ($distro,$nostdin);
 if (open(PIPE,"perl distprobe|")) {  if (open(PIPE,"perl distprobe|")) {
     $distro = <PIPE>;      $distro = <PIPE>;
     close(PIPE);      close(PIPE);
 }  }
 if ($distro =~ /^ubuntu|debian/) {  if ($distro =~ /^ubuntu|debian/) {
       $nostdin = 1;
   } elsif ($distro =~ /^suse([\d.]+)$/) {
       if ($1 > 12.2) {
           $nostdin = 1;
       }
   } elsif ($distro =~ /^sles(\d+)$/) {
       if ($1 > 11) {
           $nostdin = 1;
       }
   }
   if ($nostdin) {
     open(OUT,"|usermod -p `mkpasswd $passwd` $username");      open(OUT,"|usermod -p `mkpasswd $passwd` $username");
     close(OUT);      close(OUT);
 } else {  } else {
Line 443  use GDBM_File; # A simplistic key-value Line 455  use GDBM_File; # A simplistic key-value
 my $rolesref=&LONCAPA::locking_hash_tie("$udpath/roles.db",&GDBM_WRCREAT());  my $rolesref=&LONCAPA::locking_hash_tie("$udpath/roles.db",&GDBM_WRCREAT());
 if (!$rolesref) {  if (!$rolesref) {
     print(&mt('Error').' '.      print(&mt('Error').' '.
           &mt('unable to tie roles db: [_1]'."$udpath/roles.db")."\n");            &mt('unable to tie roles db: [_1].',"$udpath/roles.db")."\n");
     exit;      exit;
 }  }
 my $now = time;  my $now = time;
Line 476  $domrolesref->{$domkey}= &LONCAPA::escap Line 488  $domrolesref->{$domkey}= &LONCAPA::escap
  system('/bin/chown',"www:www","$dompath/nohist_domainroles.db"); # Must be writeable by httpd process.   system('/bin/chown',"www:www","$dompath/nohist_domainroles.db"); # Must be writeable by httpd process.
  system('/bin/chown',"www:www","$dompath/nohist_domainroles.db.lock");   system('/bin/chown',"www:www","$dompath/nohist_domainroles.db.lock");
   
   # Log with domainconfiguser in nohist_rolelog.db
   my $domconfiguser = $domain.'-domainconfig';
   my $subdir = $domconfiguser;
   $subdir =~ s/(.)(.)(.).*/$1\/$2\/$3/;
   $subdir .= "/$domconfiguser";
   
   if (-d "$dompath/$subdir") {
       my $rolelogref = &LONCAPA::locking_hash_tie("$dompath/$subdir/nohist_rolelog.db",&GDBM_WRCREAT());
       my $domlogkey = &LONCAPA::escape($now.'00000'.$$.'000000'); 
       my $storehash = {
                          role    => 'dc',
                          start   => $now,
                          end     => 0,
                          context => 'server',
                       };
       my $domlogvalue = {
                           'exe_uname' => '',
                           'exe_udom'  => $domain,
                           'exe_time'  => $now,
                           'exe_ip'    => '127.0.0.1',
                           'delflag'   => '',
                           'logentry'  => $storehash,
                           'uname'     => $username,
                           'udom'      => $domain,
                        };
       $rolelogref->{$domlogkey}=&freeze_escape($domlogvalue);
       &LONCAPA::locking_hash_untie($rolelogref);
   
       system('/bin/chown',"www:www","$dompath/$subdir/nohist_rolelog.db"); # Must be writeable by httpd process.
       system('/bin/chown',"www:www","$dompath/$subdir/nohist_rolelog.db.lock");
   } else {
       print(&mt('Failed to log role creation as the path to the directory: "[_1]" does not exist.',"$dompath/$subdir/")."\n".
             &mt('Please run UPDATE from the top level directory of the extracted LON-CAPA tarball, i.e., two levels up from this current directory (loncom/build).'));
   }
   
 #Update allusers MySQL table  #Update allusers MySQL table
   
 print(&mt('Adding new user to allusers table.')."\n");  print(&mt('Adding new user to allusers table.')."\n");
Line 574  sub get_password { Line 621  sub get_password {
     return $newpasswd;      return $newpasswd;
 }  }
   
   sub freeze_escape {
       my ($value)=@_;
       if (ref($value)) {
           $value=&nfreeze($value);
           return '__FROZEN__'.&LONCAPA::escape($value);
       }
       return &LONCAPA::escape($value);
   }
   
 =pod  =pod
   
 =head1 AUTHOR  =head1 AUTHOR

Removed from v.1.20  
changed lines
  Added in v.1.27


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