--- loncom/auth/checkauthen.pm 2012/04/18 18:55:06 1.13 +++ loncom/auth/checkauthen.pm 2013/12/13 02:10:27 1.14 @@ -1,7 +1,7 @@ # The LearningOnline Network # checks for a cokkie to authenticate a user # -# $Id: checkauthen.pm,v 1.13 2012/04/18 18:55:06 raeburn Exp $ +# $Id: checkauthen.pm,v 1.14 2013/12/13 02:10:27 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -36,7 +36,17 @@ use Apache::lonnet; sub handler { my ($r) = @_; + if ($r->uri() =~ m{^/res/adm/pages/[^/]+\.(gif|png)$}) { + if ($r->user() eq '') { + $r->user('public'); + } + return OK; + } + if (&Apache::lonnet::is_domainimage($r->uri)) { + if ($r->user() eq '') { + $r->user('public'); + } return OK; } @@ -55,18 +65,36 @@ sub handler { if ($env{'user.name'} eq 'public' && $env{'user.domain'} eq 'public') { if ($env{'request.publicaccess'} ) { + if ($r->user() eq '') { + $r->user('public'); + } return OK; } else { return $fail; } } - my $handle = &Apache::lonnet::check_for_valid_session($r); + my %user; + my $handle = &Apache::lonnet::check_for_valid_session($r,undef,\%user); if ($handle eq '') { $handle = $env{'user.environment'}; + if (($handle ne '') && ($r->user() eq '')) { + if ($env{'user.domain'} eq $r->dir_config('lonDefDomain')) { + $r->user($env{'user.name'}); + } else { + $r->user($env{'user.name'}.':'.$env{'user.domain'}); + } + } } if ($handle ne '') { + if ($r->user() eq '') { + if ($user{'domain'} eq $r->dir_config('lonDefDomain')) { + $r->user($user{'name'}); + } else { + $r->user($user{'name'}.':'.$user{'domain'}); + } + } return OK; } if (($fail == FORBIDDEN) && ($r->uri eq '/adm/email')) {