--- loncom/cgi/userstatus.pl 2007/10/02 01:36:31 1.16
+++ loncom/cgi/userstatus.pl 2008/11/28 20:45:21 1.17
@@ -1,7 +1,7 @@
#!/usr/bin/perl
$|=1;
# User Status
-# $Id: userstatus.pl,v 1.16 2007/10/02 01:36:31 albertel Exp $
+# $Id: userstatus.pl,v 1.17 2008/11/28 20:45:21 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -26,23 +26,23 @@ $|=1;
# http://www.lon-capa.org/
#
-
use strict;
+
use lib '/home/httpd/lib/perl/';
+use Apache::lonlocal;
use LONCAPA::Configuration;
-use LONCAPA;
+use LONCAPA::loncgi;
use HTTP::Headers;
use GDBM_File;
+# -------------------- Read loncapa.conf (and by default, loncapa_apache.conf).
+my $perlvar=&LONCAPA::Configuration::read_conf('loncapa.conf');
+print "Content-type: text/html\n\n";
my %usercount;
my @actl=('Active','Moderately Active','Inactive');
-
-print "Content-type: text/html\n\n";
-
-# -------------------- Read loncapa.conf (and by default, loncapa_apache.conf).
-&main();
+&main($perlvar);
sub analyze_time {
my ($since)=@_;
@@ -68,13 +68,61 @@ sub add_count {
}
sub main {
- my $perlvar=LONCAPA::Configuration::read_conf('loncapa.conf');
+ my ($perlvar) = @_;
delete $$perlvar{'lonReceipt'}; # remove since sensitive and not needed
delete $$perlvar{'lonSqlAccess'}; # remove since sensitive and not needed
- my $oneline=($ENV{'QUERY_STRING'} eq 'simple');
- my $justsummary=($ENV{'QUERY_STRING'} eq 'summary');
- unless ($oneline) { print "
\nUser Status ".localtime()."
"; }
+ if (!&LONCAPA::loncgi::check_ipbased_access()) {
+ if (!&LONCAPA::loncgi::check_cookie_and_load_env()) {
+ &Apache::lonlocal::get_language_handle();
+ print &LONCAPA::loncgi::missing_cookie_msg();
+ return;
+ }
+
+ if (!&LONCAPA::loncgi::can_view('userstatus')) {
+ &Apache::lonlocal::get_language_handle();
+ print &LONCAPA::loncgi::unauthorized_msg('userstatus');
+ return;
+ }
+ }
+
+ &Apache::lonlocal::get_language_handle();
+ my (%gets,$dom,$oneline,$justsummary);
+ &LONCAPA::loncgi::cgi_getitems($ENV{'QUERY_STRING'},\%gets);
+ if (defined($gets{'simple'})) {
+ $oneline = 'simple';
+ }
+ if (defined($gets{'summary'})) {
+ $justsummary = 'summary';
+ }
+
+ my %lt = &Apache::lonlocal::texthash(
+ usrs => 'User Status',
+ login => 'Login time',
+ on => 'on',
+ Client => 'Client',
+ role => 'Role',
+ notc => 'Not in a course',
+ ltra => 'Last Transaction',
+ lacc => 'Last Access',
+ secs => 'secs ago',
+ usrc => 'User Counts',
+ load => 'Load Average',
+ Overall => 'Overall',
+ Domain => 'Domain',
+ Course => 'Course',
+ Browser => 'Browser',
+ OS => 'OS',
+ Active => 'Active',
+ 'Moderately Active' => 'Moderately Active',
+ Inactive => 'Inactive',
+ );
+
+ unless ($oneline) {
+ my $now = time();
+ print ''."\n".
+ "$lt{'usrs'} ".&Apache::lonlocal::locallocaltime($now).'
';
+ }
opendir(DIR,$$perlvar{'lonIDsDir'});
my @allfiles=(sort(readdir(DIR)));
@@ -113,11 +161,11 @@ sub main {
$userinfo{'user.name'}."\@".$userinfo{'user.domain'}.
")\n".
"$filename
".
- "Login time: ".
- localtime($userinfo{'user.login.time'}).
- ' Browser: '.$userinfo{'browser.type'}.
- " on ".$userinfo{'browser.os'}."Client: ".
- $userinfo{'request.host'}."
\nRole: ".
+ "$lt{'login'}: ".
+ &Apache::lonlocal::locallocaltime($userinfo{'user.login.time'}).
+ " $lt{'Browser'}: ".$userinfo{'browser.type'}.
+ " $lt{'on'} ".$userinfo{'browser.os'}."$lt{'Client'}:".
+ $userinfo{'request.host'}."
\n$lt{'role'}: ".
$userinfo{'request.role'}." ";
}
&add_count('Browser',$userinfo{'browser.type'},$userinfo{'browser.version'});
@@ -128,21 +176,20 @@ sub main {
' ('.$cid.')';
if (!$justsummary) {
$users{$userclass}{$filename} .=
- "Course: ".$coursename;
+ "$lt{'Course'}: ".$coursename;
}
&add_count('Course',$coursename,$userclass);
} else {
if (!$justsummary) {
- $users{$userclass}{$filename} .=
- "Not in a course.";
+ $users{$userclass}{$filename} .= $lt{'notc'};
}
&add_count('Course','No Course',$userclass);
}
if (!$justsummary) {
$users{$userclass}{$filename} .=
- "
Last Transaction: ".localtime($mtime).
- " (".$since." secs ago)
Last Access: ".
- localtime($atime)." (".$sinceacc." secs ago)".
+ "
$lt{'ltra'}: ".&Apache::lonlocal::locallocaltime($mtime).
+ " (".$since." $lt{'secs'})
$lt{'lacc'}: ".
+ &Apache::lonlocal::locallocaltime($atime)." (".$sinceacc." $lt{'secs'})".
"";
}
}
@@ -150,7 +197,7 @@ sub main {
}
if (!$oneline && !$justsummary) {
foreach my $class (@actl) {
- print("\n\n
$class
");
+ print("\n\n
$lt{$class}
");
foreach my $filename (sort(keys(%{$users{$class}}))) {
print("\n\n".$users{$class}{$filename}."\n\n
");
}
@@ -162,16 +209,16 @@ sub main {
my $loadavg=;
close(LOADAVGH);
unless ($oneline) {
- print "
User Counts
";
+ print "
$lt{'usrc'}
";
# print "\n";
- &showact('Overall',%usercount);
- &showact('Domain',%usercount);
- &showact('Course',%usercount);
- &show('Browser',%usercount);
- &show('OS',%usercount);
+ &showact('Overall',\%lt,%usercount);
+ &showact('Domain',\%lt,%usercount);
+ &showact('Course',\%lt,%usercount);
+ &show('Browser',\%lt,%usercount);
+ &show('OS',\%lt,%usercount);
# print "\n
";
- print "Load Average: ".$loadavg;
+ print "$lt{'load'}: ".$loadavg;
print "";
} else {
foreach my $l1 (sort keys %usercount) {
@@ -190,8 +237,8 @@ sub main {
}
sub show {
- my ($cat,%usercount)=@_;
- print("$cat
\n");
+ my ($cat,$ltref,%usercount)=@_;
+ print("$ltref->{$cat}
\n");
foreach my $type (sort(keys(%{$usercount{$cat}}))) {
print("$type | ");
print(join(" | ",sort(keys(%{$usercount{$cat}{$type}}))));
@@ -208,8 +255,8 @@ sub show {
}
sub showact {
- my ($cat,%usercount)=@_;
- print("$cat\n");
+ my ($cat,$ltref,%usercount)=@_;
+ print("$ltref->{$cat}\n");
print(" | ");
print(join(" | ",('Any',@actl)));
|
---|
|
---|