Diff for /loncom/auth/lonuploadedacc.pm between versions 1.1 and 1.13

version 1.1, 2002/08/02 14:45:04 version 1.13, 2006/07/17 17:34:46
Line 28 Line 28
   
 package Apache::lonuploadedacc;  package Apache::lonuploadedacc;
   
   #
   # The way this is supposed to work:
   #
   # User A has client machine C
   # User A is logged into LON-CAPA server S
   # needs file from user B
   # homeserver for user B is H
   # 
   # This handler runs on H
   # To access a userfile:
   # Server S generates a token and puts it into the query string of URL for H
   # Client box C asks H for file with token issued by C
   # H now must ask S if token is valid, uses S's lond-command tokenauthuserfile
   
 use strict;  use strict;
 use Apache::Constants qw(:common :remotehost);  use Apache::Constants qw(:common :http);
 use Apache::lonnet();  use Apache::lonnet;
 use Apache::File();  
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
       my $args=$r->args;
       &Apache::loncommon::get_unprocessed_cgi($args,['token','tokenissued']); 
       my (undef,undef,$udom,$uname,$ufile)=split(/\//,$r->uri,5);
       $ufile=~s/^[\~\.]+//;
       my $remoteserver=$env{'form.tokenissued'};
       my $reply=&Apache::lonnet::reply('tokenauthuserfile:'.
                    $udom.'/'.$uname.'/'.$ufile.':'.$env{'form.token'},
        $remoteserver);
       if ($reply eq 'ok') {
          return OK;
      } elsif ($reply eq 'con_lost' || $reply eq 'no_such_host') {
          &Apache::lonnet::logthis("Server unavailable for userfile access $uname at $udom for $ufile with $remoteserver token $env{'form.token'}: $reply");
          return HTTP_SERVICE_UNAVAILABLE;
      } else {
          &Apache::lonnet::logthis("Refused userfile access $uname at $udom for $ufile with $remoteserver token $env{'form.token'}: $reply");
          return FORBIDDEN;
      }
   }
   
   sub skip_phase {
     return OK;      return OK;
 }  }
   

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


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