--- loncom/cgi/takeoffline.pl 2003/09/11 20:54:11 1.2
+++ loncom/cgi/takeoffline.pl 2008/12/25 01:56:03 1.4
@@ -1,7 +1,8 @@
#!/usr/bin/perl
+$|=1;
# Take machine offline, reroute traffic
#
-# $Id: takeoffline.pl,v 1.2 2003/09/11 20:54:11 www Exp $
+# $Id: takeoffline.pl,v 1.4 2008/12/25 01:56:03 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -26,31 +27,72 @@
# http://www.lon-capa.org/
#
-print "Content-type: text/html\n\n".
- "
Take Offline
";
-unless ($ENV{'QUERY_STRING'}) {
- print 'No reroute server given, taking completely offline.';
- &dead();
-} else {
- ($otherserver,$domain)=split(/\&/,$ENV{'QUERY_STRING'});
- print 'Rerouting to '.$otherserver;
- &reroute();
-}
-open (STATUS,'>/home/httpd/html/lon-status/reroute.txt');
-print STATUS "status=rerouting&server=$otherserver&domain=$domain&time=".time."\n";
-close(STATUS);
+use strict;
+use lib '/home/httpd/lib/perl/';
+use Apache::lonlocal;
+use LONCAPA::loncgi;
+use LONCAPA::lonauthcgi;
+
+print "Content-type: text/html\n\n";
+
+&main();
+
+sub main {
+ if (!&LONCAPA::lonauthcgi::check_ipbased_access('takeoffline')) {
+ if (!&LONCAPA::loncgi::check_cookie_and_load_env()) {
+ &Apache::lonlocal::get_language_handle();
+ print(&LONCAPA::loncgi::missing_cookie_msg());
+ return;
+ }
-print "";
+ if (!&LONCAPA::lonauthcgi::can_view('takeoffline')) {
+ &Apache::lonlocal::get_language_handle();
+ print(&LONCAPA::lonauthcgi::unauthorized_msg('takeoffline'));
+ return;
+ }
+ }
+
+ &Apache::lonlocal::get_language_handle();
+
+ print ''.&Apache::lonlocal::mt('Take Offline').'
';
+ my $statusmsg;
+ if ($ENV{'QUERY_STRING'}) {
+ my ($otherserver,$domain)=split(/\&/,$ENV{'QUERY_STRING'});
+ if (&reroute($otherserver,$domain)) {
+ print &Apache::lonlocal::mt('Rerouting to [_1]',$otherserver);
+ $statusmsg = "status=rerouting&server=$otherserver&domain=$domain&time=".time.
+ "by=$Apache::lonnet::env{'user.name'}:$Apache::lonnet::env{'user.domain'}";
+ }
+ } else {
+ if (&dead()) {
+ print &Apache::lonlocal::mt('No reroute server given, taking completely offline.');
+ $statusmsg = 'status=offline&time='.time."by=$Apache::lonnet::env{'user.name'}:$Apache::lonnet::env{'user.domain'}"
+ }
+ }
+ print "";
+ if ($statusmsg) {
+ if (open (STATUS,'>/home/httpd/html/lon-status/reroute.txt')) {
+ print STATUS "$statusmsg\n";
+ close(STATUS);
+ } else {
+ print &Apache::lonlocal::mt('Logging of status change to [_1] failed.','reroute.txt');
+ }
+ }
+}
sub dead {
- open (OUT,'>/home/httpd/html/index.html');
- print OUT 'This LON-CAPA server is currently offline.';
- close(OUT);
+ if (open (OUT,'>/home/httpd/html/index.html')) {
+ print OUT &Apache::lonlocal::mt('This LON-CAPA server is currently offline.');
+ close(OUT);
+ return 'ok';
+ }
+ return;
}
sub reroute {
- open (OUT,'>/home/httpd/html/index.html');
- print OUT (</home/httpd/html/index.html')) {
+ print OUT (<
Welcome to the LearningOnline Network with CAPA
@@ -63,5 +105,8 @@ sub reroute {