Diff for /loncom/build/add_domain_coordinator_privilege.pl between versions 1.1 and 1.5

version 1.1, 2007/06/26 19:39:25 version 1.5, 2011/03/28 14:18:22
Line 87  use Apache::lonlocal; Line 87  use Apache::lonlocal;
   
 There are no flags to this script.  There are no flags to this script.
   
 usage: add_domain_coordinator_privledge.pl [USERNAME:DOMAIN] [NEWDOMAIN]  usage: add_domain_coordinator_privilege.pl [USERNAME:DOMAIN] [NEWDOMAIN]
   
 The first argument specifies the user name domain of an existing user.  The first argument specifies the user name domain of an existing user.
   
Line 152  my $rolesref=&LONCAPA::locking_hash_tie( Line 152  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");
 }  }
   my $status;
   my $now = time;
 if (exists($rolesref->{'/'.$add_domain.'/_dc'})) {  if (exists($rolesref->{'/'.$add_domain.'/_dc'})) {
     my ($role,$end,$start) = split('_',$rolesref->{'/'.$add_domain.'/_dc'});      my ($role,$end,$start) = split('_',$rolesref->{'/'.$add_domain.'/_dc'});
     print(&mt("[_1] already has a dc priviledge for [_2].",      print(&mt("[_1] already has a dc privilege for [_2].",
       $user,$add_domain)."\n");        $user,$add_domain)."\n");
     if ($start) {      if ($start) {
  print(&mt("Start date: [_1]",&Apache::lonlocal::locallocaltime($start)).   print(&mt("Start date: [_1]",&Apache::lonlocal::locallocaltime($start)).
       "\n");        "\n");
  if (!$end) {   if (!$end) {
     print(&mt("No planned end date.")."\n");      print(&mt("No planned end date.")."\n");
  }   } else {
  if ($start < time() && (!$end || $end > time())) {              print(&mt("End date: [_1]",&Apache::lonlocal::locallocaltime($end)).
     print(&mt("It is currently active."));                    "\n");
     exit(0);          }
    if (($start <= $now) && (!$end || $end > $now)) {
       print(&mt("It is currently active.")."\n");
       $status = 'active';
  }   }
     } elsif ($end) {      } elsif ($end) {
  print(&mt("End date: [_1]",&Apache::lonlocal::locallocaltime($end)).   print(&mt("End date: [_1]",&Apache::lonlocal::locallocaltime($end)).
       "\n");        "\n");
  if ($end > time()) {   if ($end > $now) {
     print(&mt("It is currently active.")."\n");      print(&mt("It is currently active.")."\n");
     exit(0);      $status = 'active';
  }   }
     }      }
     if (!$start and !$end) {      if ((!$start) && (!$end)) {
  print(&mt("It is currently active.")."\n");   print(&mt("It is currently active.")."\n");
  exit(0);   $status = 'active';
       }
       unless ($status eq 'active') {
           print(&mt("It is currently not active. Proceeding to make role active now.")."\n");
     }      }
 }  }
   
 $rolesref->{'/'.$add_domain.'/_dc'}='dc'; # Set the domain coordinator role.  if ($status eq 'active') {
       &LONCAPA::locking_hash_untie($rolesref);
       exit(0);
   }
   
   my $now = time;
   $rolesref->{'/'.$add_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 192  close(OUT); Line 206  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);
   
    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");
   
 =pod  =pod
   
 =item 2.  =item 2.
Line 203  by going to http://MACHINENAME/adm/creat Line 233  by going to http://MACHINENAME/adm/creat
   
 # 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 for $add_domain\n");  print("$username is now a domain coordinator for $add_domain\n");
 my $hostname=`hostname`; chomp($hostname); # Read in hostname.  
 print("http://$hostname/adm/createuser will allow you to further define".  
       " this user.\n"); # Output a suggested URL.  
   

Removed from v.1.1  
changed lines
  Added in v.1.5


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