--- loncom/auth/lonroles.pm 2000/02/22 21:36:44 1.1 +++ loncom/auth/lonroles.pm 2000/06/07 19:19:31 1.2 @@ -4,14 +4,14 @@ # (Login Screen # 5/21/99,5/22,5/25,5/26,5/31,6/2,6/10,7/12,7/14 Gerd Kortemeyer) # 11/23 Gerd Kortemeyer) -# 1/14 Gerd Kortemeyer +# 1/14,03/06,06/01 Gerd Kortemeyer # package Apache::lonroles; use strict; use Apache::lonnet(); use Apache::Constants qw(:common); -use CGI::Cookie(); +use Apache::File(); sub handler { my $r = shift; @@ -19,15 +19,22 @@ sub handler { $r->send_http_header; return OK if $r->header_only; - my $iconpath= $r->dir_config('lonIconsURL'); - my $domain = $r->dir_config('lonDefDomain'); - my $role = $r->dir_config('lonRole'); - my $loadlim = $r->dir_config('lonLoadLim'); - my $servadm = $r->dir_config('lonAdmEMail'); - my $sysadm = $r->dir_config('lonSysEMail'); - my $lonhost = $r->dir_config('lonHostID'); +# --------------------------------------------------- Read Plain Text for Roles + my $tabdir = $r->dir_config('lonTabDir'); + my @rolesplain; + my %plain; + + { + my $idf=Apache::File->new("$tabdir/rolesplain.tab"); + @rolesplain=<$idf>; + } + map { + my ($short,$long)=split(/:/,$_); + $plain{$short}=$long; + } @rolesplain; + # ---------------------------------------------------------------- Print Header $r->print(< @@ -37,15 +44,39 @@ sub handler { ENDHEADER - my %cookies=CGI::Cookie->parse($r->header_in('Cookie')); - my $lonurl=$cookies{'lonURL'}; - my $lowerurl=$lonurl->value; +# ------------------------------------------ Get Error Message from Environment + + my ($fn,$priv,$nochoose,$error,$msg)=split(/:/,$ENV{'user.error.msg'}); +# -------------------------------------------------------- Generate Page Output + + if ($error) { + $r->print("

LON-CAPA Access Control

"); + $r->print("
Access  : $plain{$priv}
"); + $r->print("Resource: $fn
"); + $r->print("Action : $msg

"); + $r->log_reason( + "$msg for $ENV{'user.name'} domain $ENV{'user.domain'} access $priv",$fn); + } else { + $r->print("

LON-CAPA User Roles

"); + } + + if ($nochoose) { + $r->print("

Assigned User Roles

"); + } else { + $r->print("

Select a User Role

\n"); + $r->print('
'); +$r->print('
'); + } my $envkey; - foreach $envkey (sort keys %ENV) { - $r->print("$envkey: $ENV{$envkey}
\n"); + foreach $envkey (keys %ENV) { + $r->print("$envkey ---- $ENV{$envkey}
"); + if ($envkey=~/^user\.role\./) { + my ($dum1,$dum2,$role,$where)=split(/\./,$envkey); + $r->print("$plain{$role} for $where
"); + } } - $r->print("

URL: $lowerurl"); + $r->print("\n"); return OK; }