--- loncom/auth/publiccheck.pm 2007/01/24 19:39:22 1.13 +++ loncom/auth/publiccheck.pm 2009/10/26 18:59:02 1.18 @@ -1,7 +1,7 @@ # The LearningOnline Network # Cookie Based Access Handler # -# $Id: publiccheck.pm,v 1.13 2007/01/24 19:39:22 albertel Exp $ +# $Id: publiccheck.pm,v 1.18 2009/10/26 18:59:02 droeschl Exp $ # # Copyright Michigan State University Board of Trustees # @@ -34,7 +34,6 @@ use Apache::Constants qw(:common :http : use Apache::lonnet; use Apache::loncommon(); use Apache::lonlocal; -use CGI::Cookie(); use Fcntl qw(:flock); use Apache::lonacc(); use LONCAPA(); @@ -43,23 +42,30 @@ sub handler { my $r = shift; my $requrl=$r->uri; - my %cookies=CGI::Cookie->parse($r->header_in('Cookie')); - my $lonid=$cookies{'lonID'}; - if ($lonid) { - my $handle=&LONCAPA::clean_handle($lonid->value); + + if (&Apache::lonnet::is_domainimage($requrl)) { + return OK; + } + + if ($requrl =~ m{^/res/adm/pages/[^/]+\.(gif|png)$}) { + return OK; + } + + my $handle = &Apache::lonnet::check_for_valid_session($r); + if ($handle ne '') { my $lonidsdir=$r->dir_config('lonIDsDir'); - if ((-e "$lonidsdir/$handle.id") && ($handle ne '')) { - &Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle); - if ($env{'user.name'} ne 'public' - && $env{'user.domain'} ne 'public') { - return OK; - } + &Apache::lonnet::transfer_profile_to_env($lonidsdir,$handle); + if ($env{'user.name'} ne 'public' + && $env{'user.domain'} ne 'public') { + return OK; } } if ($requrl=~m|^/public/| || $requrl=~m|^/adm/help/.*\.hlp$| || $requrl=~m|^/adm/[^/]+/[^/]+/aboutme/portfolio$| - || (&Apache::lonnet::metadata($requrl,'copyright') eq 'public')) { + || (&Apache::lonnet::metadata($requrl,'copyright') eq 'public') + || $requrl=~m|^/adm/blockingstatus/.*$| + || $requrl eq '/adm/coursecatalog') { &process_public($r,$requrl); return OK; } elsif (&Apache::lonnet::is_portfolio_url($requrl)) { @@ -76,7 +82,7 @@ sub handler { } elsif ($requrl eq '/adm/blockedaccess') { &process_public($r,$requrl); return OK; - } + } return DECLINED; }