version 1.1, 2012/02/27 03:06:33
|
version 1.2, 2012/06/01 11:39:29
|
Line 169 sub handler {
|
Line 169 sub handler {
|
if ($now-$sesstime < $timetolive) { |
if ($now-$sesstime < $timetolive) { |
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); |
return OK; |
if (&Apache::lonnet::usertools_access($uname,$udom,'webdav')) { |
|
return OK; |
|
} else { |
|
return FORBIDDEN; |
|
} |
} |
} |
} |
} |
} |
} |
Line 207 sub handler {
|
Line 211 sub handler {
|
$handle = &init_webdav_env($sessiondir,$uname,$udom, |
$handle = &init_webdav_env($sessiondir,$uname,$udom, |
$uhome,$now,$timetolive); |
$uhome,$now,$timetolive); |
if ($handle ne '') { |
if ($handle ne '') { |
my $cookie = "lonDAV=$handle; path=/webdav/; secure; HttpOnly;"; |
if (&Apache::lonnet::usertools_access($uname,$udom,'webdav')) { |
$r->header_out('Set-cookie' => $cookie); |
my $cookie = "lonDAV=$handle; path=/webdav/; secure; HttpOnly;"; |
$r->send_http_header; |
$r->header_out('Set-cookie' => $cookie); |
|
$r->send_http_header; |
|
return OK; |
|
} else { |
|
return FORBIDDEN; |
|
} |
} |
} |
return OK; |
|
} |
} |
} |
} |
} |
} |
Line 257 sub init_webdav_env {
|
Line 265 sub init_webdav_env {
|
$disk_env{'user.name'} = $uname; |
$disk_env{'user.name'} = $uname; |
$disk_env{'user.domain'} = $udom; |
$disk_env{'user.domain'} = $udom; |
$disk_env{'user.home'} = $uhome; |
$disk_env{'user.home'} = $uhome; |
|
my %userenv = &Apache::lonnet::get('environment',['inststatus','tools.webdav'], |
|
$udom,$uname); |
|
my ($tmp) = keys(%userenv); |
|
if ($tmp =~ /^(con_lost|error|no_such_host)/i) { |
|
$disk_env{'environment.inststatus'} = $userenv{'inststatus'}; |
|
$disk_env{'environment.tools.webdav'} = $userenv{'tools.webdav'}; |
|
} |
$disk_env{'user.environment'} = $sessionfile; |
$disk_env{'user.environment'} = $sessionfile; |
my $possroles = ['au','ca','aa']; |
my $possroles = ['au','ca','aa']; |
my @possdoms = &Apache::lonnet::current_machine_domains(); |
my @possdoms = &Apache::lonnet::current_machine_domains(); |
my %cstr_roles = |
my %cstr_roles = |
&Apache::lonnet::get_my_roles($uname,$udom,'userroles', |
&Apache::lonnet::get_my_roles($uname,$udom,'userroles', |
undef,$possroles,\@possdoms); |
undef,$possroles,\@possdoms); |
foreach my $item (keys(%cstr_roles)) { |
if (keys(%cstr_roles) > 0) { |
my ($aname,$adom,$role) = split(/:/,$item); |
$disk_env{'user.adv'} = 1; |
if ($role eq 'au') { |
$disk_env{'user.author'} = 1; |
$disk_env{"user.role.$role./$adom/"} = $cstr_roles{$item}; |
foreach my $item (keys(%cstr_roles)) { |
} else { |
my ($aname,$adom,$role) = split(/:/,$item); |
$disk_env{"user.role.$role./$adom/$aname"} = $cstr_roles{$item}; |
if ($role eq 'au') { |
|
$disk_env{"user.role.$role./$adom/"} = $cstr_roles{$item}; |
|
} else { |
|
$disk_env{"user.role.$role./$adom/$aname"} = $cstr_roles{$item}; |
|
} |
} |
} |
} |
} |
|
my %is_adv = ( is_adv => $disk_env{'user.adv'} ); |
|
my %domdef = &Apache::lonnet::get_domain_defaults($udom); |
|
$disk_env{'environment.availabletools.webdav'} = |
|
&Apache::lonnet::usertools_access($uname,$udom,'webdav','reload',undef, |
|
\%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); |
} |
} |