Diff for /loncom/build/add_domain_coordinator_privilege.pl between versions 1.3 and 1.6

version 1.3, 2007/12/31 16:49:23 version 1.6, 2011/03/28 21:15:25
Line 79  use LONCAPA; Line 79  use LONCAPA;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::loncommon;  use Apache::loncommon;
 use Apache::lonlocal;  use Apache::lonlocal;
 &Apache::lonlocal::get_language_handle();  
   
 =pod  =pod
   
Line 95  The second argument specifies the domain Line 94  The second argument specifies the domain
   
 =cut  =cut
   
   my ($user,$add_domain)=(@ARGV);
   my $lang = &Apache::lonlocal::choose_language();
   &Apache::lonlocal::get_language_handle(undef,$lang);
   
   if ($< != 0) { # Am I root?
      print(&mt('You must be root in order to assign domain coordinator roles.').
            "\n");
   }
   
 # ----------------------------------------------- So, are we invoked correctly?  # ----------------------------------------------- So, are we invoked correctly?
 # Two arguments or abort  # Two arguments or abort
 if (@ARGV!=2) {  if (@ARGV!=2) {
     die('usage: add_domain_coordinator_privilege.pl [USERNAME:DOMAIN] [NEWDOMAIN]'.      print(&mt('usage: [_1]','add_domain_coordinator_privilege.pl [USERNAME:DOMAIN] [NEWDOMAIN]').
  "\n");   "\n");
       exit;
 }  }
 my ($user,$add_domain)=(@ARGV);  
 my ($username,$domain)=split(':',$user);  my ($username,$domain)=split(':',$user);
 if (!grep(/^\Q$add_domain\E$/,&Apache::lonnet::current_machine_domains())) {  if (!grep(/^\Q$add_domain\E$/,&Apache::lonnet::current_machine_domains())) {
     die('**** ERROR **** Domain '.$add_domain.' is unknown'."\n");      print(&mt('**** ERROR **** Domain [_1] is unknown.',$add_domain)."\n");
       exit;
 }  }
   
 my $udpath=&propath($domain,$username);  my $udpath=&propath($domain,$username);
 if (!-d $udpath) {  if (!-d $udpath) {
     die ('**** ERROR **** '.$user.' is NOT already defined as a LON-CAPA '.      print(&mt('**** ERROR **** [_1] is NOT already defined as a LON-CAPA '.
  'user.'."\n");   'user.',$user)."\n");
       exit;
 }  }
   
 =pod  =pod
Line 150  use GDBM_File; # A simple key-value pair Line 160  use GDBM_File; # A simple key-value pair
   
 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) {
     die('unable to tie roles db: '."$udpath/roles.db");      print(&mt('unable to tie [_1]',"roles db: $udpath/roles.db")."\n");
       exit;
 }  }
   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 privilege for [_2].",      print(&mt("[_1] already has a dc privilege for [_2].",
Line 161  if (exists($rolesref->{'/'.$add_domain.' Line 174  if (exists($rolesref->{'/'.$add_domain.'
       "\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");
     }      }
     print(&mt("It is currently not active. Proceeding to re-enable")."\n");  }
   
   if ($status eq 'active') {
       &LONCAPA::locking_hash_untie($rolesref);
       exit(0);
 }  }
   
 my $now = time;  my $now = time;
Line 199  my $dompath = $perlvar{'lonUsersDir'}.'/ Line 222  my $dompath = $perlvar{'lonUsersDir'}.'/
 my $domrolesref = &LONCAPA::locking_hash_tie("$dompath/nohist_domainroles.db",&GDBM_WRCREAT());  my $domrolesref = &LONCAPA::locking_hash_tie("$dompath/nohist_domainroles.db",&GDBM_WRCREAT());
   
 if (!$domrolesref) {  if (!$domrolesref) {
     die('unable to tie nohist_domainroles db: '."$dompath/nohist_domainroles.db");      print(&mt('unable to tie [_1]',"nohist_domainroles db: $dompath/nohist_domainroles.db")."\n");
       exit;
 }  }
   
 # Store in nohist_domainroles.db  # Store in nohist_domainroles.db
Line 207  my $domkey=&LONCAPA::escape('dc:'.$usern Line 231  my $domkey=&LONCAPA::escape('dc:'.$usern
 $domrolesref->{$domkey}= &LONCAPA::escape('0:'.$now);  $domrolesref->{$domkey}= &LONCAPA::escape('0:'.$now);
 &LONCAPA::locking_hash_untie($domrolesref);  &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");
   exit;
   
 =pod  =pod
   
 =item 2.  =item 2.
Line 217  by going to http://MACHINENAME/adm/creat Line 245  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 for $add_domain\n");  print(&mt('[_1] is now a domain coordinator for [_2].',$username,$add_domain).
 my $hostname=`hostname`; chomp($hostname); # Read in hostname.        "\n");
 print("http://$hostname/adm/createuser will allow you to further define".  
       " this user.\n"); # Output a suggested URL.  
   

Removed from v.1.3  
changed lines
  Added in v.1.6


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