version 1.1, 2005/11/29 21:02:50
|
version 1.14, 2013/12/13 02:10:27
|
Line 36 use Apache::lonnet;
|
Line 36 use Apache::lonnet;
|
sub handler { |
sub handler { |
my ($r) = @_; |
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; |
|
} |
|
|
|
if ($r->auth_type() ne 'LONCAPA') { |
|
return DECLINED; |
|
} |
my $fail = FORBIDDEN; |
my $fail = FORBIDDEN; |
if ($r->dir_config('lonOtherAuthen') eq 'yes') { |
if ($r->dir_config('lonOtherAuthen') eq 'yes') { |
&Apache::lonnet::logthis("other authen"); |
if (defined($r->dir_config('lonOtherAuthenType'))) { |
|
$r->auth_type($r->dir_config('lonOtherAuthenType')); |
|
} |
|
#&Apache::lonnet::logthis("other authen"); |
$fail = DECLINED; |
$fail = DECLINED; |
} |
} |
|
|
if ($env{'user.name'} eq 'public' |
if ($env{'user.name'} eq 'public' |
&& $env{'user.domain'} eq 'public') { |
&& $env{'user.domain'} eq 'public') { |
if ($env{'request.publicaccess'} ) { |
if ($env{'request.publicaccess'} ) { |
|
if ($r->user() eq '') { |
|
$r->user('public'); |
|
} |
return OK; |
return OK; |
} else { |
} else { |
return $fail; |
return $fail; |
} |
} |
} |
} |
|
|
my %cookies=CGI::Cookie->parse($r->header_in('Cookie')); |
my %user; |
my $lonid=$cookies{'lonID'}; |
my $handle = &Apache::lonnet::check_for_valid_session($r,undef,\%user); |
my $cookie; |
if ($handle eq '') { |
if ($lonid) { |
$handle = $env{'user.environment'}; |
my $handle=$lonid->value; |
if (($handle ne '') && ($r->user() eq '')) { |
$handle=~s/\W//g; |
if ($env{'user.domain'} eq $r->dir_config('lonDefDomain')) { |
my $lonidsdir=$r->dir_config('lonIDsDir'); |
$r->user($env{'user.name'}); |
if ((-e "$lonidsdir/$handle.id") && ($handle ne '')) { |
} else { |
return OK; |
$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')) { |
|
$env{'form.firsturl'} = $r->uri; |
|
} |
return $fail; |
return $fail; |
} |
} |
|
|