Diff for /loncom/auth/lonuploadedacc.pm between versions 1.8 and 1.14

version 1.8, 2003/05/12 21:22:57 version 1.14, 2008/11/12 20:01:09
Line 26 Line 26
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
 #  #
   
   =head1 NAME
   
   Apache::lonuploadedacc
   
   =head1 SYNOPSIS
   
   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 is part of the LearningOnline Network with CAPA project
   described at http://www.lon-capa.org.
   
   =head1 HANDLER SUBROUTINE
   
   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
   
   =cut
   
 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);  use Apache::Constants qw(:common :http);
 use Apache::lonnet();  use Apache::lonnet;
   
 sub handler {  sub handler {
     my $r = shift;      my $r = shift;
     my $args=$r->args;      my $args=$r->args;
     &Apache::loncommon::get_unprocessed_cgi($args,['token','tokenissued']);       &Apache::loncommon::get_unprocessed_cgi($args,['token','tokenissued']); 
     my (undef,undef,$udom,$uname,$ufile)=split(/\//,$r->uri);      my (undef,undef,$udom,$uname,$ufile)=split(/\//,$r->uri,5);
     $ufile=~s/^[\~\.]+//;      $ufile=~s/^[\~\.]+//;
     my $remoteserver=$ENV{'form.tokenissued'};      my $remoteserver=$env{'form.tokenissued'};
     my $reply=&Apache::lonnet::reply('tokenauthuserfile:'.      my $reply=&Apache::lonnet::reply('tokenauthuserfile:'.
                  $udom.'/'.$uname.'/'.$ufile.':'.$ENV{'form.token'},                   $udom.'/'.$uname.'/'.$ufile.':'.$env{'form.token'},
      $remoteserver);       $remoteserver);
     if ($reply eq 'ok') {      if ($reply eq 'ok') {
        $ENV{'request.state'}='uploaded';  
        return 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 {     } else {
        &Apache::lonnet::logthis(         &Apache::lonnet::logthis("Refused userfile access $uname at $udom for $ufile with $remoteserver token $env{'form.token'}: $reply");
 "Refused userfile access $uname at $udom for $ufile with $remoteserver token $ENV{'form.token'}: $reply");  
        return FORBIDDEN;         return FORBIDDEN;
    }     }
 }  }
   
   sub skip_phase {
       return OK;
   }
   
 1;  1;
 __END__  __END__
   

Removed from v.1.8  
changed lines
  Added in v.1.14


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