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

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


raeburn		Mon Mar 28 21:16:09 2011 EDT

  Modified files:              
    /loncom/build	expire_DC_role.pl 
  Log:
  - Check script is being run as root.
  - Localization.
  
  
Index: loncom/build/expire_DC_role.pl
diff -u loncom/build/expire_DC_role.pl:1.1 loncom/build/expire_DC_role.pl:1.2
--- loncom/build/expire_DC_role.pl:1.1	Mon Mar  7 23:13:40 2011
+++ loncom/build/expire_DC_role.pl	Mon Mar 28 21:16:08 2011
@@ -6,7 +6,7 @@
 # a user who currently has such a role in a domain for which current server is
 # a library server for the domain.
 # 
-# $Id: expire_DC_role.pl,v 1.1 2011/03/07 23:13:40 raeburn Exp $
+# $Id: expire_DC_role.pl,v 1.2 2011/03/28 21:16:08 raeburn Exp $
 #
 # This file is part of the LearningOnline Network with CAPA (LON-CAPA).
 #
@@ -69,8 +69,7 @@
 use LONCAPA;
 use Apache::lonnet;
 use Apache::loncommon;
-use Apache::lonlocal;
-&Apache::lonlocal::get_language_handle();
+use Apache::lonlocal();
 
 =pod
 
@@ -87,28 +86,41 @@
 
 =cut
 
+my ($user,$role_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 expire a domain coordinator role.').
+          "\n");
+    exit;
+}
 # ----------------------------------------------- So, are we invoked correctly?
 # Two arguments or abort
 if (@ARGV!=2) {
-    die('usage: expire_DC_role.pl [USERNAME:DOMAIN] [DC ROLEDOMAIN]'.
+    print(&mt('usage: [_1]','expire_DC_role.pl [USERNAME:DOMAIN] [DC ROLEDOMAIN]').
 	"\n");
+    exit;
 }
 my ($user,$role_domain)=(@ARGV);
 my ($username,$domain)=split(':',$user);
 if (!grep(/^\Q$role_domain\E$/,&Apache::lonnet::current_machine_domains())) {
-    die('**** ERROR **** Domain '.$role_domain.' is not a domain for which this server is a library server.'."\n");
+    print(&mt('**** ERROR **** Domain [_1] is not a domain for which this server is a library server.',$role_domain)."\n");
+    exit;
 }
 
 my $udpath=&propath($domain,$username);
 if (!-d $udpath) {
-    die ('**** ERROR **** '.$user.' is not a LON-CAPA user for which this is the homeserver.'."\n");
+    print(&mt('**** ERROR **** [_1] is not a LON-CAPA user for which this is the homeserver.',$user)."\n");
+    exit;
 }
 
 use GDBM_File; # A simple key-value pairing database.
 
 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 ($start,$status,$now);
 $now = time();
@@ -175,7 +187,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
@@ -189,3 +202,4 @@
 # Output success message.
 print(&mt('User: [_1], domain coordinator role expired in domain: [_2].',$user,$role_domain)."\n");
 
+exit;