#!/usr/bin/perl
$|=1;
# The LearningOnline Network with CAPA
# User Status
# (Versions
# (Running loncron
# 09/06/01 Gerd Kortemeyer)
# 02/18/02,02/19/02 Gerd Kortemeyer)
use lib '/home/httpd/lib/perl/';
use LONCAPA::Configuration;
use HTTP::Headers;
use IO::File;
print "Content-type: text/html\n\n".
"
\n";
# -------------------- Read loncapa.conf (and by default, loncapa_apache.conf).
my $perlvarref=LONCAPA::Configuration::read_conf('loncapa.conf');
my %perlvar=%{$perlvarref};
undef $perlvarref; # remove since sensitive and not needed
delete $perlvar{'lonReceipt'}; # remove since sensitive and not needed
delete $perlvar{'lonSqlAccess'}; # remove since sensitive and not needed
print "User Status ".localtime()."
";
my $filename;
opendir(DIR,$perlvar{'lonIDsDir'});
%usercounts=();
while ($filename=readdir(DIR)) {
unless ($filename=~/^\./) {
my ($dev,$ino,$mode,$nlink,
$uid,$gid,$rdev,$size,
$atime,$mtime,$ctime,
$blksize,$blocks)=stat($perlvar{'lonIDsDir'}.'/'.$filename);
$now=time;
$since=$now-$mtime;
$sinceacc=$now-$atime;
print ("\n\n
");
my %userinfo=();
undef $userinfo;
my $fh=IO::File->new($perlvar{'lonIDsDir'}.'/'.$filename);
while ($line=<$fh>) {
chomp($line);
my ($name,$value)=split(/\=/,$line);
$userinfo{$name}=$value;
}
$fh->close();
$color="#000000";
$userclass="Active";
if ($since>300) { $color="#222222"; }
if ($since>600) { $color="#444444"; }
if ($since>3600) { $color="#666666"; $userclass="Moderately Active"; }
if ($since>7200) { $color="#888888"; }
if ($since>21600) { $color="#AAAAAA"; $userclass="Inactive"; }
$usercount{$userclass}++;
$usercount{'in Domain '.$userinfo{'user.domain'}}++;
print '';
print ''.$userinfo{'environment.lastname'}.', '.
$userinfo{'environment.firstname'}.' '.
$userinfo{'environment.middlename'}.' '.
$userinfo{'environment.generation'}." (".
$userinfo{'user.name'}."\@".$userinfo{'user.domain'}.
")
\nLogin time: ".
localtime($userinfo{'user.login.time'}).
' Browser: '.$userinfo{'browser.type'}." Client: ".
$userinfo{'request.host'}."
\nRole: ".
$userinfo{'request.role'}." ";
if ($userinfo{'request.course.id'}) {
print "Course: ".
$userinfo{'course.'.$userinfo{'request.course.id'}.'.description'}.
' ('.$userinfo{'request.course.id'}.')';
$usercount{'in Course '.
$userinfo{'course.'.$userinfo{'request.course.id'}.'.description'}.
' ('.$userinfo{'request.course.id'}.')'}++;
} else {
print "Not in a course.";
}
print "
Last Transaction: ".localtime($mtime).
" (".$since." secs ago)
Last Access: ".localtime($atime).
" (".$sinceacc." secs ago)";
print ("");
}
}
closedir(DIR);
print "
User Count
";
foreach (sort keys %usercount) {
print "".$_.": ".$usercount{$_}."
";
}
print "";