# 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(< The LearningOnline Network with CAPA

My Desk

ENDHEADER # In a course unless ($ENV{'request.course.id'}) { $r->print('

No specific course chosen

'); } # 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('

'.$url.'

'); } } 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(''.$text.'
'); } } } @desklines; $r->print(''); 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__