version 1.4, 2015/05/29 20:00:49
|
version 1.8, 2020/12/18 15:23:03
|
Line 164 sub handler {
|
Line 164 sub handler {
|
if (&Apache::lonnet::homeserver($uname,$udom) eq $uhome) { |
if (&Apache::lonnet::homeserver($uname,$udom) eq $uhome) { |
&Apache::lonnet::transfer_profile_to_env($sessiondir,$handle); |
&Apache::lonnet::transfer_profile_to_env($sessiondir,$handle); |
if (&Apache::lonnet::usertools_access($uname,$udom,'webdav')) { |
if (&Apache::lonnet::usertools_access($uname,$udom,'webdav')) { |
|
if ($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'}); |
|
} |
|
} |
return OK; |
return OK; |
} else { |
} else { |
return FORBIDDEN; |
return FORBIDDEN; |
Line 178 sub handler {
|
Line 185 sub handler {
|
|
|
if ($r->user =~ /,/) { |
if ($r->user =~ /,/) { |
($uname,$udom) = split(/,/,$r->user); |
($uname,$udom) = split(/,/,$r->user); |
|
$uname =~ s/^\s+//; |
|
$uname =~ s/\s+$//; |
|
$udom =~ s/^\s+//; |
|
$udom =~ s/\s+$//; |
unless (($uname =~ /^$match_username$/) && ($udom =~ /^$match_domain$/)) { |
unless (($uname =~ /^$match_username$/) && ($udom =~ /^$match_domain$/)) { |
$r->note_basic_auth_failure; |
$r->note_basic_auth_failure; |
return AUTH_REQUIRED; |
return AUTH_REQUIRED; |
} |
} |
} else { |
} else { |
$uname = $r->user; |
$uname = $r->user; |
|
$uname =~ s/^\s+//; |
|
$uname =~ s/\s+$//; |
($udom) = ($r->uri =~ m{^/webdav/($match_domain)/}); |
($udom) = ($r->uri =~ m{^/webdav/($match_domain)/}); |
unless (($udom ne '' ) && ($uname =~ /^$match_username$/) && ($upass ne '')) { |
unless (($udom ne '' ) && ($uname =~ /^$match_username$/) && ($upass ne '')) { |
$r->note_basic_auth_failure; |
$r->note_basic_auth_failure; |
Line 285 sub init_webdav_env {
|
Line 298 sub init_webdav_env {
|
\%userenv,\%domdef,\%is_adv); |
\%userenv,\%domdef,\%is_adv); |
@env{keys(%disk_env)} = @disk_env{keys(%disk_env)}; |
@env{keys(%disk_env)} = @disk_env{keys(%disk_env)}; |
untie(%disk_env); |
untie(%disk_env); |
my $ip; |
my $ip = &Apache::lonnet::get_requestor_ip($r); |
my $c = $r->connection; |
|
if (ref($c)) { |
|
$ip = $c->remote_ip; |
|
} |
|
&Apache::lonnet::log($udom,$uname,$uhome, |
&Apache::lonnet::log($udom,$uname,$uhome, |
"Login webdav/$author $ip"); |
"Login webdav/$author $ip"); |
} |
} |