--- loncom/auth/lonacc.pm 2006/07/10 03:58:45 1.85 +++ loncom/auth/lonacc.pm 2006/07/14 21:38:26 1.86 @@ -1,7 +1,7 @@ # The LearningOnline Network # Cookie Based Access Handler # -# $Id: lonacc.pm,v 1.85 2006/07/10 03:58:45 raeburn Exp $ +# $Id: lonacc.pm,v 1.86 2006/07/14 21:38:26 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -35,6 +35,7 @@ use Apache::File; use Apache::lonnet; use Apache::loncommon(); use Apache::lonlocal; +use Apache::restrictedaccess(); use CGI::Cookie(); use Fcntl qw(:flock); use LONCAPA; @@ -292,9 +293,8 @@ sub passphrase_access_checker { } } } - my $login = $r->dir_config('Login'); - $login .= '?origurl='.&escape($requrl); - $r->custom_response(FORBIDDEN,$login); + $r->set_handlers('PerlHandler'=> \&Apache::restrictedaccess::handler); + $r->content_type('perl-script'); return; } @@ -389,22 +389,16 @@ sub handler { if ($result eq 'ok') { return OK; } elsif ($result =~ /^[^:]+:guest_/) { - if (&passphrase_access_checker($r,$result,$requrl) eq 'ok') { - return OK; - } else { - return FORBIDDEN; - } + &passphrase_access_checker($r,$result,$requrl); + return OK; } } elsif ($requrl =~ m|/+uploaded/([^/]+)/([^/]+)/groups/([^/]+)/portfolio/(.+)$|) { my $result = &portfolio_access($1,$2,$3.'/'.$4,$3); if ($result eq 'ok') { return OK; } elsif ($result =~ /^[^:]+:guest_/) { - if (&passphrase_access_checker($r,$result,$requrl) eq 'ok') { - return OK; - } else { - return FORBIDDEN; - } + &passphrase_access_checker($r,$result,$requrl); + return OK; } } if ($requrl!~/^\/adm|public|prtspool\//) { @@ -525,23 +519,17 @@ sub handler { if ($result eq 'ok') { return OK; } elsif ($result =~ /^[^:]+:guest_/) { - if (&passphrase_access_checker($r,$result,$requrl) eq 'ok') { - return OK; - } else { - return FORBIDDEN; - } + &passphrase_access_checker($r,$result,$requrl); + return OK; } } elsif ($requrl =~ m|/+uploaded/([^/]+)/([^/]+)/groups/([^/]+)/portfolio/(.+)$|) { my $result = &portfolio_access($1,$2,$3.'/'.$4,$3); if ($result eq 'ok') { return OK; } elsif ($result =~ /^[^:]+:guest_/) { - if (&passphrase_access_checker($r,$result,$requrl) eq 'ok') { - return OK; - } else { - return FORBIDDEN; - } - } + &passphrase_access_checker($r,$result,$requrl); + return OK; + } } # -------------------------------------------------------------- Not authorized $requrl=~/\.(\w+)$/;