--- loncom/lonnet/perl/lonuploadrep.pm 2005/04/07 06:56:24 1.7 +++ loncom/lonnet/perl/lonuploadrep.pm 2009/02/13 17:20:35 1.11 @@ -1,6 +1,8 @@ # The LearningOnline Network # Uploaded File Replication Manager # +# $Id: lonuploadrep.pm,v 1.11 2009/02/13 17:20:35 bisitz Exp $ +# # Copyright Michigan State University Board of Trustees # # This file is part of the LearningOnline Network with CAPA (LON-CAPA). @@ -28,12 +30,13 @@ package Apache::lonuploadrep; use strict; use Apache::Constants qw(:common :http); +use Apache::lonrep(); use Apache::lonnet; -use CGI::Cookie(); +use LONCAPA(); sub handler { my $r = shift; - if ($r->uri =~m|^/*uploaded/(\w+)/(\w+)/(.+)$|) { + if ($r->uri =~m{^/*uploaded/($LONCAPA::domain_re)/($LONCAPA::name_re)/(.+)$}) { my $chome=&Apache::lonnet::homeserver($2,$1); my @ids=&Apache::lonnet::current_machine_ids(); foreach my $id (@ids) { if ($id eq $chome) { return OK; } } @@ -46,21 +49,20 @@ sub handler { } elsif ( ($info > 0) && ($info =~ /\d+/) ) { my @statinfo = stat($filename); if ($statinfo[9] >= $info ) { - $r->filename($filename); + &Apache::lonrep::update_filename($r,$filename); return OK; } } } my $response=&Apache::lonnet::repcopy_userfile($r->uri); if ($response eq 'ok') { - $r->filename($filename); + &Apache::lonrep::update_filename($r,$filename); return OK; } } - my %cookies=CGI::Cookie->parse($r->header_in('Cookie')); - my $lonid=$cookies{'lonID'}; - if ($lonid) { - $r->log_reason('Copying failed in lonuploadrep for '.$lonid->value); + my $handle = &Apache::lonnet::check_for_valid_session($r); + if ($handle) { + $r->log_reason('Copying failed in lonuploadrep for '.$handle); return HTTP_NOT_FOUND; } else { $r->log_reason('Copying failed in lonuploadrep for unknown user');