File:  [LON-CAPA] / loncom / interface / Attic / lonmydesk.pm
Revision 1.2: download - view: text, annotated - select for diffs
Sun May 20 19:05:43 2001 UTC (22 years, 11 months ago) by www
Branches: MAIN
CVS tags: HEAD
My desk kind of works

# 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>