version 1.491, 2004/04/29 07:57:47
|
version 1.492, 2004/04/29 17:25:11
|
Line 1165 sub externalssi {
|
Line 1165 sub externalssi {
|
return $response->content; |
return $response->content; |
} |
} |
|
|
# ------- Add a token to a remote URI's query string to vouch for access rights |
# -------------------------------- Allow a /uploaded/ URI to be vouched for |
|
|
|
sub allowuploaded { |
|
my ($srcurl,$url)=@_; |
|
$url=&clutter(&declutter($url)); |
|
my $dir=$url; |
|
$dir=~s/\/[^\/]+$//; |
|
my %httpref=(); |
|
my $httpurl=&hreflocation('',$url); |
|
$httpref{'httpref.'.$httpurl}=$srcurl; |
|
&Apache::lonnet::appenv(%httpref); |
|
} |
|
|
sub tokenwrapper { |
sub tokenwrapper { |
my $uri=shift; |
&FIXME_blow_up; |
$uri=~s/^http\:\/\/([^\/]+)//; |
|
$uri=~s/^\///; |
|
$ENV{'user.environment'}=~/\/([^\/]+)\.id/; |
|
my $token=$1; |
|
# if ($uri=~/^uploaded\/([^\/]+)\/([^\/]+)\/([^\/]+)(\?\.*)*$/) { |
|
if ($uri=~m|^uploaded/([^/]+)/([^/]+)/(.+)(\?\.*)*$|) { |
|
&appenv('userfile.'.$1.'/'.$2.'/'.$3 => $ENV{'request.course.id'}); |
|
return 'http://'.$hostname{ &homeserver($2,$1)}.'/'.$uri. |
|
(($uri=~/\?/)?'&':'?').'token='.$token. |
|
'&tokenissued='.$perlvar{'lonHostID'}; |
|
} else { |
|
return '/adm/notfound.html'; |
|
} |
|
} |
} |
|
|
# --------- File operations in /home/httpd/html/userfiles/$domain/1/2/3/$course |
# --------- File operations in /home/httpd/html/userfiles/$domain/1/2/3/$course |
Line 2688 sub allowed {
|
Line 2686 sub allowed {
|
|
|
# URI is an uploaded document for this course |
# URI is an uploaded document for this course |
|
|
if (($priv eq 'bre') && |
if (($priv eq 'bre') && ($uri=~m|^uploaded/|)) { |
($uri=~/^uploaded\/$ENV{'course.'.$ENV{'request.course.id'}.'.domain'}\/$ENV{'course.'.$ENV{'request.course.id'}.'.num'}/)) { |
my $refuri=$ENV{'httpref.'.$orguri}; |
return 'F'; |
if ($refuri) { |
|
if ($refuri =~ m|^/adm/|) { |
|
$thisallowed='F'; |
|
} |
|
} |
} |
} |
|
|
# Full access at system, domain or course-wide level? Exit. |
# Full access at system, domain or course-wide level? Exit. |
|
|
if ($thisallowed=~/F/) { |
if ($thisallowed=~/F/) { |