version 1.21, 2000/07/24 21:22:35
|
version 1.25, 2000/08/28 22:21:24
|
Line 4
|
Line 4
|
# Functions for use by content handlers: |
# Functions for use by content handlers: |
# |
# |
# plaintext(short) : plain text explanation of short term |
# plaintext(short) : plain text explanation of short term |
|
# fileembstyle(ext) : embed style in page for file extension |
|
# filedescription(ext) : descriptor text for file extension |
# allowed(short,url) : returns codes for allowed actions F,R,S,C |
# allowed(short,url) : returns codes for allowed actions F,R,S,C |
# definerole(rolename,sys,dom,cou) : define a custom role rolename |
# definerole(rolename,sys,dom,cou) : define a custom role rolename |
# set priviledges in format of lonTabs/roles.tab for |
# set priviledges in format of lonTabs/roles.tab for |
Line 16
|
Line 18
|
# Specify name and domain of role author, and role name |
# Specify name and domain of role author, and role name |
# revokerole (udom,uname,url,role) : Revoke a role for url |
# revokerole (udom,uname,url,role) : Revoke a role for url |
# revokecustomrole (udom,uname,url,rdom,rnam,rolename) : Revoke a custom role |
# revokecustomrole (udom,uname,url,rdom,rnam,rolename) : Revoke a custom role |
# appendenv(hash) : adds hash to session environment |
# appenv(hash) : adds hash to session environment |
# store(hash) : stores hash permanently for this url |
# store(hash) : stores hash permanently for this url |
# restore : returns hash for this url |
# restore : returns hash for this url |
# eget(namesp,array) : returns hash with keys from array filled in from namesp |
# eget(namesp,array) : returns hash with keys from array filled in from namesp |
# get(namesp,array) : returns hash with keys from array filled in from namesp |
# get(namesp,array) : returns hash with keys from array filled in from namesp |
# put(namesp,hash) : stores hash in namesp |
# put(namesp,hash) : stores hash in namesp |
# dump(namesp) : dumps the complete namespace into a hash |
# dump(namesp) : dumps the complete namespace into a hash |
# ssi(url) : does a complete request cycle on url to localhost |
# ssi(url,hash) : does a complete request cycle on url to localhost, posts |
|
# hash |
# repcopy(filename) : replicate file |
# repcopy(filename) : replicate file |
# dirlist(url) : gets a directory listing |
# dirlist(url) : gets a directory listing |
# |
# |
Line 35
|
Line 38
|
# 04/05,05/29,05/31,06/01, |
# 04/05,05/29,05/31,06/01, |
# 06/05,06/26 Gerd Kortemeyer |
# 06/05,06/26 Gerd Kortemeyer |
# 06/26 Ben Tyszka |
# 06/26 Ben Tyszka |
# 06/30,07/15,07/17,07/18,07/20,07/21,07/22 Gerd Kortemeyer |
# 06/30,07/15,07/17,07/18,07/20,07/21,07/22,07/25 Gerd Kortemeyer |
|
# 08/14 Ben Tyszka |
|
# 08/22,08/28 Gerd Kortemeyer |
|
|
package Apache::lonnet; |
package Apache::lonnet; |
|
|
Line 44 use Apache::File;
|
Line 49 use Apache::File;
|
use LWP::UserAgent(); |
use LWP::UserAgent(); |
use HTTP::Headers; |
use HTTP::Headers; |
use vars |
use vars |
qw(%perlvar %hostname %homecache %spareid %hostdom %libserv %pr %prp $readit); |
qw(%perlvar %hostname %homecache %spareid %hostdom %libserv %pr %prp %fe %fd $readit); |
use IO::Socket; |
use IO::Socket; |
use Apache::Constants qw(:common :http); |
use Apache::Constants qw(:common :http); |
|
|
Line 191 sub appenv {
|
Line 196 sub appenv {
|
chomp($oldenv[$i]); |
chomp($oldenv[$i]); |
if ($oldenv[$i] ne '') { |
if ($oldenv[$i] ne '') { |
my ($name,$value)=split(/=/,$oldenv[$i]); |
my ($name,$value)=split(/=/,$oldenv[$i]); |
$newenv{$name}=$value; |
unless (defined($newenv{$name})) { |
|
$newenv{$name}=$value; |
|
} |
} |
} |
} |
} |
{ |
{ |
Line 303 sub subscribe {
|
Line 310 sub subscribe {
|
|
|
sub repcopy { |
sub repcopy { |
my $filename=shift; |
my $filename=shift; |
|
$filename=~s/\/+/\//g; |
my $transname="$filename.in.transfer"; |
my $transname="$filename.in.transfer"; |
if ((-e $filename) || (-e $transname)) { return OK; } |
if ((-e $filename) || (-e $transname)) { return OK; } |
my $remoteurl=subscribe($filename); |
my $remoteurl=subscribe($filename); |
Line 360 sub repcopy {
|
Line 368 sub repcopy {
|
|
|
sub ssi { |
sub ssi { |
|
|
my $fn=shift; |
my ($fn,%form)=@_; |
|
|
my $ua=new LWP::UserAgent; |
my $ua=new LWP::UserAgent; |
my $request=new HTTP::Request('GET',"http://".$ENV{'HTTP_HOST'}.$fn); |
|
|
my $request; |
|
|
|
if (%form) { |
|
$request=new HTTP::Request('POST',"http://".$ENV{'HTTP_HOST'}.$fn); |
|
$request->content(join '&', map { "$_=$form{$_}" } keys %form); |
|
} else { |
|
$request=new HTTP::Request('GET',"http://".$ENV{'HTTP_HOST'}.$fn); |
|
} |
|
|
$request->header(Cookie => $ENV{'HTTP_COOKIE'}); |
$request->header(Cookie => $ENV{'HTTP_COOKIE'}); |
my $response=$ua->request($request); |
my $response=$ua->request($request); |
|
|
Line 625 sub definerole {
|
Line 642 sub definerole {
|
# ------------------------------------------------------------------ Plain Text |
# ------------------------------------------------------------------ Plain Text |
|
|
sub plaintext { |
sub plaintext { |
return $prp{$_}; |
my $short=shift; |
|
return $prp{$short}; |
|
} |
|
|
|
# ------------------------------------------------------------------ Plain Text |
|
|
|
sub fileembstyle { |
|
my $ending=shift; |
|
return $fe{$ending}; |
|
} |
|
|
|
# ------------------------------------------------------------ Description Text |
|
|
|
sub filedecription { |
|
my $ending=shift; |
|
return $fd{$ending}; |
} |
} |
|
|
# ----------------------------------------------------------------- Assign Role |
# ----------------------------------------------------------------- Assign Role |
Line 807 if ($readit ne 'done') {
|
Line 839 if ($readit ne 'done') {
|
} |
} |
} |
} |
|
|
|
# ------------------------------------------------------------- Read file types |
|
{ |
|
my $config=Apache::File->new("$perlvar{'lonTabDir'}/filetypes.tab"); |
|
|
|
while (my $configline=<$config>) { |
|
chomp($configline); |
|
my ($ending,$emb,@descr)=split(/\s+/,$configline); |
|
if ($descr[0] ne '') { |
|
$fe{$ending}=$emb; |
|
$fd{$ending}=join(' ',@descr); |
|
} |
|
} |
|
} |
|
|
|
|
$readit='done'; |
$readit='done'; |
&logthis('<font color=yellow>INFO: Read configuration</font>'); |
&logthis('<font color=yellow>INFO: Read configuration</font>'); |
} |
} |
} |
} |
1; |
1; |
|
|
|
|
|
|
|
|