Diff for /loncom/build/make_domain_coordinator.pl between versions 1.12 and 1.13

version 1.12, 2007/06/01 05:17:58 version 1.13, 2007/12/31 16:52:26
Line 91  Set roles.hist and roles.db Line 91  Set roles.hist and roles.db
   
 use lib '/home/httpd/lib/perl/';  use lib '/home/httpd/lib/perl/';
 use LONCAPA;  use LONCAPA;
   use LONCAPA::lonmetadata;
   use DBI;
   
 =pod  =pod
   
Line 372  my $rolesref=&LONCAPA::locking_hash_tie( Line 374  my $rolesref=&LONCAPA::locking_hash_tie(
 if (!$rolesref) {  if (!$rolesref) {
     die('unable to tie roles db: '."$udpath/roles.db");      die('unable to tie roles db: '."$udpath/roles.db");
 }  }
 $rolesref->{'/'.$domain.'/_dc'}='dc'; # Set the domain coordinator role.  my $now = time;
   $rolesref->{'/'.$domain.'/_dc'}='dc_0_'.$now; # 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.
 foreach my $key (keys(%{$rolesref})) {  foreach my $key (keys(%{$rolesref})) {
     print(OUT $key.' : '.$rolesref->{$key}."\n");      print(OUT $key.' : '.$rolesref->{$key}."\n");
Line 384  close(OUT); Line 387  close(OUT);
 `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.
   
   my %perlvar = %{&LONCAPA::Configuration::read_conf('loncapa.conf')};
   my $dompath = $perlvar{'lonUsersDir'}.'/'.$domain;
   my $domrolesref = &LONCAPA::locking_hash_tie("$dompath/nohist_domainroles.db",&GDBM_WRCREAT());
   
   if (!$domrolesref) {
       die('unable to tie nohist_domainroles db: '."$dompath/nohist_domainroles.db");
   }
   
   # Store in nohist_domainroles.db
   my $domkey=&LONCAPA::escape('dc:'.$username.':'.$domain.'::'.$domain.':');
   $domrolesref->{$domkey}= &LONCAPA::escape('0:'.$now);
   &LONCAPA::locking_hash_untie($domrolesref);
   
   #Update allusers MySQL table
   
   print "Adding new user to allusers table\n";
   &allusers_update($username,$domain,\%perlvar);
   
 =pod  =pod
   
 =item 10.  =item 10.
Line 394  by going to http://MACHINENAME/adm/creat Line 415  by going to http://MACHINENAME/adm/creat
 =cut  =cut
   
 # Output success message, and inform sysadmin about how to further proceed.  # Output success message, and inform sysadmin about how to further proceed.
 print("$username is now a domain coordinator\n"); # Output success message.  print("\n$username is now a domain coordinator\n"); # Output success message.
 my $hostname=`hostname`; chomp($hostname); # Read in hostname.  my $hostname=`hostname`; chomp($hostname); # Read in hostname.
 print("http://$hostname/adm/createuser will allow you to further define".  print("\n".'Once LON-CAPA is running, you should log-in and use: '."\n".
       " this user.\n"); # Output a suggested URL.        'http://'.$hostname.'/adm/createuser to further define this user.'."\n\n".
         'From the user management menu, click the link: "Add/Modify a Single User" '."\n".
         'to search for the user and to provide additional information (last name, first name etc.).'."\n");
   # Output a suggested URL.
   
   sub allusers_update {
       my ($username,$domain,$perlvar) = @_;
       my %tablenames = (
                          'allusers'   => 'allusers',
                        );
       my $dbh;
       unless ($dbh = DBI->connect("DBI:mysql:loncapa","www",
                               $perlvar->{'lonSqlAccess'},
                               { RaiseError =>0,PrintError=>0})) {
           print "Cannot connect to database!\n";
           return;
       }
       my $tablechk = &allusers_table_exists($dbh);
       if ($tablechk == 0) {
           my $request =
      &LONCAPA::lonmetadata::create_metadata_storage('allusers','allusers');
           $dbh->do($request);
           if ($dbh->err) {
                print "Failed to crate allusers table\n";
                return;
           }
       }
       my %userdata =  (
                   username => $username,
                   domain   => $domain,
       );
       my %loghash =
           &LONCAPA::lonmetadata::process_allusers_data($dbh,undef,
               \%tablenames,$username,$domain,\%userdata,'update');
       foreach my $key (keys(%loghash)) {
           print $loghash{$key}."\n";
       }
       return;
   }
   
   sub allusers_table_exists {
       my ($dbh) = @_;
       my $sth=$dbh->prepare('SHOW TABLES');
       $sth->execute();
       my $aref = $sth->fetchall_arrayref;
       $sth->finish();
       if ($sth->err()) {
           return undef;
       }
       my $result = 0;
       foreach my $table (@{$aref}) {
           if ($table->[0] eq 'allusers') {
               $result = 1;
               last;
           }
       }
       return $result;
   }
   
 =pod  =pod
   
Line 406  print("http://$hostname/adm/createuser w Line 484  print("http://$hostname/adm/createuser w
 Written to help the LON-CAPA project.  Written to help the LON-CAPA project.
   
 =cut  =cut
   

Removed from v.1.12  
changed lines
  Added in v.1.13


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