--- loncom/interface/Attic/lonmydesk.pm 2001/01/03 16:20:59 1.1 +++ loncom/interface/Attic/lonmydesk.pm 2001/05/20 19:05:43 1.2 @@ -9,13 +9,15 @@ # # 3/1/1 Gerd Kortemeyer) # -# 3/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'); @@ -23,19 +25,77 @@ sub handler { return OK if $r->header_only; # --------------------------------------------------- Print login screen header - $r->print(<print(< The LearningOnline Network with CAPA +

My Desk

- - - -ENDDOCUMENT +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__