version 1.10, 2006/11/23 01:49:41
|
version 1.20, 2018/11/25 02:49:26
|
Line 1
|
Line 1
|
# The LearningOnline Network |
# The LearningOnline Network |
# checks for a cokkie to authenticate a user |
# checks for a cookie to authenticate a user |
# |
# |
# $Id$ |
# $Id$ |
# |
# |
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:public'); |
|
} |
|
return OK; |
|
} |
|
|
|
if (&Apache::lonnet::is_domainimage($r->uri)) { |
|
if ($r->user() eq '') { |
|
$r->user('public:public'); |
|
} |
|
return OK; |
|
} |
|
|
if ($r->auth_type() ne 'LONCAPA') { |
if ($r->auth_type() ne 'LONCAPA') { |
return DECLINED; |
return DECLINED; |
} |
} |
Line 51 sub handler {
|
Line 65 sub handler {
|
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: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 $handle; |
if ($handle eq '') { |
if ($lonid) { |
|
$handle=&LONCAPA::clean_handle($lonid->value); |
|
$handle = $r->dir_config('lonIDsDir')."/$handle.id"; |
|
} else { |
|
$handle = $env{'user.environment'}; |
$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 '') && (-e $handle)) { |
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; |
return OK; |
} |
} |
|
if (($fail == FORBIDDEN) && |
|
(($r->uri eq '/adm/email') || ($r->uri eq '/adm/preferences') || |
|
($r->uri eq '/adm/requestcourse') || ($r->uri =~ m{^/tiny/[\w\-.]+/\w+$}))) { |
|
$env{'form.firsturl'} = $r->uri; |
|
} |
return $fail; |
return $fail; |
} |
} |
|
|