Diff for /loncom/build/make_domain_coordinator.pl between versions 1.9 and 1.10

version 1.9, 2003/02/03 18:03:52 version 1.10, 2006/08/11 20:09:02
Line 33  make_domain_coordinator.pl - Make a doma Line 33  make_domain_coordinator.pl - Make a doma
 #  #
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
 #  #
 # YEAR=2002  
 #  
 ###  ###
   
 =pod  =pod
Line 91  Set roles.hist and roles.db Line 89  Set roles.hist and roles.db
   
 # ---------------------------------------------------- Configure general values  # ---------------------------------------------------- Configure general values
   
 my %perlvar; # Holds network-wide and machine-specific configuration values.  use lib '/home/httpd/lib/perl/';
 # We only need one configuration value however, lonUsersDir.  Rather than  use LONCAPA;
 # read this out of loncapa.conf, I am just going to hard-code this for now.  
 $perlvar{'lonUsersDir'}='/home/httpd/lonUsers';  
   
 =pod  =pod
   
Line 179  if (-d "/home/$username") { Line 175  if (-d "/home/$username") {
     die ('**** ERROR **** '.$username.' is already a linux operating system '.      die ('**** ERROR **** '.$username.' is already a linux operating system '.
  'user.'."\n".$caveat);   'user.'."\n".$caveat);
 }  }
 my $udpath=propath($domain,$username);  my $udpath=&propath($domain,$username);
 if (-d $udpath) {  if (-d $udpath) {
     die ('**** ERROR **** '.$username.' is already defined as a LON-CAPA '.      die ('**** ERROR **** '.$username.' is already defined as a LON-CAPA '.
  'user.'."\n".$caveat);   'user.'."\n".$caveat);
Line 323  close(OUT); Line 319  close(OUT);
 =cut  =cut
   
 use GDBM_File; # A simplistic key-value pairing database.  use GDBM_File; # A simplistic key-value pairing database.
 my %hash;  
   
 tie(%hash,'GDBM_File',"$udpath/roles.db",  
     &GDBM_WRCREAT,0640); # Interface with GDBM database thru a hash variable.  
   
 $hash{'/'.$domain.'/_dc'}='dc'; # Set the domain coordinator role.  my $rolesref=&LONCAPA::locking_hash_tie("$udpath/roles.db",&GDBM_WRCREAT());
   if (!$rolesref) {
       die('unable to tie roles db: '."$udpath/roles.db");
   }
   $rolesref->{'/'.$domain.'/_dc'}='dc'; # Set the domain coordinator role.
 open(OUT, ">$udpath/roles.hist"); # roles.hist is the synchronous plain text.  open(OUT, ">$udpath/roles.hist"); # roles.hist is the synchronous plain text.
 map {  foreach my $key (keys(%{$rolesref})) {
     print(OUT $_.' : '.$hash{$_}."\n");      print(OUT $key.' : '.$rolesref->{$key}."\n");
 } keys %hash;  }
 close(OUT);  close(OUT);
 untie(%hash); # Finish interfacing with GDBM database.  &LONCAPA::locking_hash_untie($rolesref);
   
   
 `chown www:www $udpath/roles.hist`; # Must be writeable by httpd process.  `chown www:www $udpath/roles.hist`; # Must be writeable by httpd process.
 `chown www:www $udpath/roles.db`; # Must be writeable by httpd process.  `chown www:www $udpath/roles.db`; # Must be writeable by httpd process.
Line 354  my $hostname=`hostname`; chomp($hostname Line 351  my $hostname=`hostname`; chomp($hostname
 print("http://$hostname/adm/createuser will allow you to further define".  print("http://$hostname/adm/createuser will allow you to further define".
       " this user.\n"); # Output a suggested URL.        " this user.\n"); # Output a suggested URL.
   
 # ================================================================= SUBROUTINES  
 # Subroutine propath: take in domain and username, and generate filesystem path  
 sub propath {  
     my ($udom,$uname)=@_; # The lonDefDomain, and the domain coord. username.  
     $udom =~ s/\W//g; # Taint removal.  
     $uname =~ s/\W//g; # Taint removal.  
     my $subdir = $uname.'__';  
     $subdir =~ s/(.)(.)(.).*/$1\/$2\/$3/; # The path must have three subdirs.  
     my $proname = "$perlvar{'lonUsersDir'}/$udom/$subdir/$uname"; # Total path.  
     return $proname; # Return the total user directory filesystem path.  
 }  
   
 =pod  =pod
   
 =head1 AUTHOR  =head1 AUTHOR

Removed from v.1.9  
changed lines
  Added in v.1.10


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.