# The LearningOnline Network with CAPA # User Roles Screen # (Directory Indexer # (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,03/06,06/01 Gerd Kortemeyer # package Apache::lonroles; use strict; use Apache::lonnet(); use Apache::Constants qw(:common); use Apache::File(); sub handler { my $r = shift; $r->content_type('text/html'); $r->send_http_header; return OK if $r->header_only; # --------------------------------------------------- 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(< LON-CAPA User Roles ENDHEADER # ------------------------------------------ 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 (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("\n"); return OK; } 1; __END__