[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;