version 1.85, 2006/07/10 03:58:45
|
version 1.86, 2006/07/14 21:38:26
|
Line 35 use Apache::File;
|
Line 35 use Apache::File;
|
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::lonlocal; |
use Apache::lonlocal; |
|
use Apache::restrictedaccess(); |
use CGI::Cookie(); |
use CGI::Cookie(); |
use Fcntl qw(:flock); |
use Fcntl qw(:flock); |
use LONCAPA; |
use LONCAPA; |
Line 292 sub passphrase_access_checker {
|
Line 293 sub passphrase_access_checker {
|
} |
} |
} |
} |
} |
} |
my $login = $r->dir_config('Login'); |
$r->set_handlers('PerlHandler'=> \&Apache::restrictedaccess::handler); |
$login .= '?origurl='.&escape($requrl); |
$r->content_type('perl-script'); |
$r->custom_response(FORBIDDEN,$login); |
|
return; |
return; |
} |
} |
|
|
Line 389 sub handler {
|
Line 389 sub handler {
|
if ($result eq 'ok') { |
if ($result eq 'ok') { |
return OK; |
return OK; |
} elsif ($result =~ /^[^:]+:guest_/) { |
} elsif ($result =~ /^[^:]+:guest_/) { |
if (&passphrase_access_checker($r,$result,$requrl) eq 'ok') { |
&passphrase_access_checker($r,$result,$requrl); |
return OK; |
return OK; |
} else { |
|
return FORBIDDEN; |
|
} |
|
} |
} |
} elsif ($requrl =~ m|/+uploaded/([^/]+)/([^/]+)/groups/([^/]+)/portfolio/(.+)$|) { |
} elsif ($requrl =~ m|/+uploaded/([^/]+)/([^/]+)/groups/([^/]+)/portfolio/(.+)$|) { |
my $result = &portfolio_access($1,$2,$3.'/'.$4,$3); |
my $result = &portfolio_access($1,$2,$3.'/'.$4,$3); |
if ($result eq 'ok') { |
if ($result eq 'ok') { |
return OK; |
return OK; |
} elsif ($result =~ /^[^:]+:guest_/) { |
} elsif ($result =~ /^[^:]+:guest_/) { |
if (&passphrase_access_checker($r,$result,$requrl) eq 'ok') { |
&passphrase_access_checker($r,$result,$requrl); |
return OK; |
return OK; |
} else { |
|
return FORBIDDEN; |
|
} |
|
} |
} |
} |
} |
if ($requrl!~/^\/adm|public|prtspool\//) { |
if ($requrl!~/^\/adm|public|prtspool\//) { |
Line 525 sub handler {
|
Line 519 sub handler {
|
if ($result eq 'ok') { |
if ($result eq 'ok') { |
return OK; |
return OK; |
} elsif ($result =~ /^[^:]+:guest_/) { |
} elsif ($result =~ /^[^:]+:guest_/) { |
if (&passphrase_access_checker($r,$result,$requrl) eq 'ok') { |
&passphrase_access_checker($r,$result,$requrl); |
return OK; |
return OK; |
} else { |
|
return FORBIDDEN; |
|
} |
|
} |
} |
} elsif ($requrl =~ m|/+uploaded/([^/]+)/([^/]+)/groups/([^/]+)/portfolio/(.+)$|) { |
} elsif ($requrl =~ m|/+uploaded/([^/]+)/([^/]+)/groups/([^/]+)/portfolio/(.+)$|) { |
my $result = &portfolio_access($1,$2,$3.'/'.$4,$3); |
my $result = &portfolio_access($1,$2,$3.'/'.$4,$3); |
if ($result eq 'ok') { |
if ($result eq 'ok') { |
return OK; |
return OK; |
} elsif ($result =~ /^[^:]+:guest_/) { |
} elsif ($result =~ /^[^:]+:guest_/) { |
if (&passphrase_access_checker($r,$result,$requrl) eq 'ok') { |
&passphrase_access_checker($r,$result,$requrl); |
return OK; |
return OK; |
} else { |
} |
return FORBIDDEN; |
|
} |
|
} |
|
} |
} |
# -------------------------------------------------------------- Not authorized |
# -------------------------------------------------------------- Not authorized |
$requrl=~/\.(\w+)$/; |
$requrl=~/\.(\w+)$/; |