Diff for /loncom/auth/lonwebdavauth.pm between versions 1.1 and 1.2

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);
         }          }

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>