--- loncom/auth/lonacc.pm 2006/07/21 18:52:32 1.89 +++ loncom/auth/lonacc.pm 2006/07/21 19:42:12 1.90 @@ -1,7 +1,7 @@ # The LearningOnline Network # Cookie Based Access Handler # -# $Id: lonacc.pm,v 1.89 2006/07/21 18:52:32 albertel Exp $ +# $Id: lonacc.pm,v 1.90 2006/07/21 19:42:12 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -137,23 +137,6 @@ sub get_posted_cgi { $r->headers_in->unset('Content-length'); } -sub passphrase_access_checker { - my ($r,$guestkey,$requrl) = @_; - my ($num,$scope,$end,$start) = ($guestkey =~ /^([^:]+):([a-z]+)_(\d*)_?(\d*)$/); - if ($scope eq 'guest') { - if (exists($env{'user.passphrase_access_'.$requrl})) { - if (($env{'user.passphrase_access_'.$requrl} == 0) || - ($env{'user.passphrase_access_'.$requrl} > time)) { - $env{'request.publicaccess'} = 1; - return 'ok'; - } - } - } - $r->set_handlers('PerlHandler'=> \&Apache::restrictedaccess::handler); - $r->content_type('perl-script'); - return; -} - sub handler { my $r = shift; my $requrl=$r->uri; @@ -216,16 +199,16 @@ sub handler { # ---------------------------------------------------------------- Check access my $now = time; - if (&Apache::lonnet::is_portfolio_url($requrl)) { - my $result = &Apache::lonnet::portfolio_access($r,$requrl); - if ($result eq 'ok') { return OK; } - } if ($requrl!~/^\/adm|public|prtspool\//) { my $access=&Apache::lonnet::allowed('bre',$requrl); if ($access eq '1') { $env{'user.error.msg'}="$requrl:bre:0:0:Choose Course"; return HTTP_NOT_ACCEPTABLE; } + if ($access eq 'A') { + &Apache::restrictedaccess::setup_handler($r); + return OK; + } if (($access ne '2') && ($access ne 'F')) { $env{'user.error.msg'}="$requrl:bre:1:1:Access Denied"; return HTTP_NOT_ACCEPTABLE; @@ -241,7 +224,7 @@ sub handler { } if ($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public' && - $requrl !~ m{^/+(res|public)/} && + $requrl !~ m{^/+(res|public|uploaded)/} && $requrl !~ m{^/+adm/(help|logout|restrictedaccess|randomlabel\.png)}) { $env{'request.querystring'}=$r->args; $env{'request.firsturl'}=$requrl; @@ -332,10 +315,17 @@ sub handler { if ($requrl=~m|^/+adm/+help/+|) { return OK; } -# ------------------------------------- See if this is a viewable portfolio file +# ------------------------------------ See if this is a viewable portfolio file if (&Apache::lonnet::is_portfolio_url($requrl)) { - my $result = &Apache::lonnet::portfolio_access($r,$requrl); - if ($result eq 'ok' ) { return OK; } + my $access=&Apache::lonnet::allowed('bre',$requrl); + if ($access eq 'A') { + &Apache::restrictedaccess::setup_handler($r); + return OK; + } + if (($access ne '2') && ($access ne 'F')) { + $env{'user.error.msg'}="$requrl:bre:1:1:Access Denied"; + return HTTP_NOT_ACCEPTABLE; + } } # -------------------------------------------------------------- Not authorized