# The LearningOnline Network
# My Desk
#
# (Internal Server Error Handler
#
# (Login Screen
# 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14,
# 1/14/00,5/29,5/30,6/1,6/29,7/1,11/9 Gerd Kortemeyer)
#
# 3/1/1 Gerd Kortemeyer)
#
# 3/1,5/11,5/20 Gerd Kortemeyer
#
package Apache::lonmydesk;
use strict;
use Apache::Constants qw(:common);
use Apache::lonnet;
use vars qw(@desklines $readdesk);
sub handler {
my $r = shift;
$r->content_type('text/html');
$r->send_http_header;
return OK if $r->header_only;
# --------------------------------------------------- Print login screen header
$r->print(<<ENDHEADER);
<html>
<head>
<title>The LearningOnline Network with CAPA</title>
</head>
<body bgcolor="#FFFFFF">
<img src="/adm/lonIcons/lonlogos.gif" align="right">
<h1>My Desk</h1>
ENDHEADER
# In a course
unless ($ENV{'request.course.id'}) {
$r->print('<h3>No specific course chosen</h3>');
}
# Advanced User?
my $adv=0;
map {
if ($_=~/user\.role\.(\w+)/) {
if ($1 ne 'st') { $adv=1; }
}
} keys %ENV;
# Print Options
my $uname=$ENV{'user.name'};
my $udom=$ENV{'user.domain'};
map {
my ($priv,$extent,$url,$text)=split(/\:/,$_);
if ($priv eq 'cat') {
if (($extent eq 'any')||($adv)) {
$r->print('<h1>'.$url.'</h1>');
}
} else {
my $checkext;
if ($extent eq 'sys') {
$checkext='/';
} elsif ($extent eq 'dom') {
$checkext='/'.$udom.'/';
} else {
$checkext=$ENV{'request.course.id'};
}
if ((&Apache::lonnet::allowed($priv,$checkext)) ||
($priv eq 'any')) {
$url=~s/\$udom/$udom/g;
$url=~s/\$uname/$uname/g;
$r->print('<a href="'.$url.'">'.$text.'</a><br>');
}
}
} @desklines;
$r->print('</body></html>');
return OK;
}
# ================================================================ Main Program
sub BEGIN {
if ($readdesk ne 'done') {
{
my $config=Apache::File->new($Apache::lonnet::perlvar{'lonTabDir'}.
'/mydesk.tab');
while (my $configline=<$config>) {
chomp($configline);
$desklines[$#desklines+1]=$configline;
}
}
}
}
1;
__END__
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>