[LON-CAPA-cvs] cvs: loncom /build add_domain_coordinator_privilege.pl

raeburn raeburn@source.lon-capa.org
Mon, 28 Mar 2011 21:15:25 -0000


raeburn		Mon Mar 28 21:15:25 2011 EDT

  Modified files:              
    /loncom/build	add_domain_coordinator_privilege.pl 
  Log:
  - Check script is being run as root.
  - Localization.
  
  
Index: loncom/build/add_domain_coordinator_privilege.pl
diff -u loncom/build/add_domain_coordinator_privilege.pl:1.5 loncom/build/add_domain_coordinator_privilege.pl:1.6
--- loncom/build/add_domain_coordinator_privilege.pl:1.5	Mon Mar 28 14:18:22 2011
+++ loncom/build/add_domain_coordinator_privilege.pl	Mon Mar 28 21:15:25 2011
@@ -14,7 +14,7 @@
 # add_domain_coordinator_privilege.pl - Add domain coordinator to an
 #    exisiting user on a LON-CAPA system.
 #
-# $Id: add_domain_coordinator_privilege.pl,v 1.5 2011/03/28 14:18:22 raeburn Exp $
+# $Id: add_domain_coordinator_privilege.pl,v 1.6 2011/03/28 21:15:25 raeburn Exp $
 #
 # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
 #
@@ -79,7 +79,6 @@
 use Apache::lonnet;
 use Apache::loncommon;
 use Apache::lonlocal;
-&Apache::lonlocal::get_language_handle();
 
 =pod
 
@@ -95,22 +94,33 @@
 
 =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?
 # Two arguments or abort
 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");
+    exit;
 }
-my ($user,$add_domain)=(@ARGV);
 my ($username,$domain)=split(':',$user);
 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);
 if (!-d $udpath) {
-    die ('**** ERROR **** '.$user.' is NOT already defined as a LON-CAPA '.
-	 'user.'."\n");
+    print(&mt('**** ERROR **** [_1] is NOT already defined as a LON-CAPA '.
+	 'user.',$user)."\n");
+    exit;
 }
 
 =pod
@@ -150,7 +160,8 @@
 
 my $rolesref=&LONCAPA::locking_hash_tie("$udpath/roles.db",&GDBM_WRCREAT());
 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;
@@ -211,7 +222,8 @@
 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");
+    print(&mt('unable to tie [_1]',"nohist_domainroles db: $dompath/nohist_domainroles.db")."\n");
+    exit;
 }
 
 # Store in nohist_domainroles.db
@@ -219,8 +231,9 @@
 $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");
+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
 
@@ -232,5 +245,6 @@
 =cut
 
 # 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).
+      "\n");