--- rat/lonratsrv.pm 2001/11/29 19:23:49 1.16 +++ rat/lonratsrv.pm 2002/06/27 16:43:57 1.19 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Server for RAT Maps # -# $Id: lonratsrv.pm,v 1.16 2001/11/29 19:23:49 www Exp $ +# $Id: lonratsrv.pm,v 1.19 2002/06/27 16:43:57 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -197,7 +197,7 @@ sub loadmap { # ----------------------------------------------------------- Saves map to disk sub savemap { - my ($fn,$errtext)=@_; + my ($fn,$errtext,$r)=@_; my %alltypes; my %allvalues; if (($fn=~/\.sequence$/) || @@ -290,12 +290,12 @@ sub savemap { print $fh $outstr; $errtext.="Map saved as $fn. "; } else { - $errtext.='Could not write file $fn. Map not saved. '; + $errtext.='Could not write file '.$fn.'. Map not saved. '; } } } else { # -------------------------------------------- Cannot write to that file, error - $errtext.='Map not saved: The specified path does not exist. '; + $errtext.='Map not saved: The specified '.$fn.' path does not exist. '.$r->uri(); } return $errtext; } @@ -316,11 +316,18 @@ sub handler { $url=~s/\/loadonly\/ratserver$/\/save\/ratserver/; my $fn=$r->filename; + my $lonDocRoot=$r->dir_config('lonDocRoot'); + if ( $fn =~ /$lonDocRoot/ ) { + #internal authentication, needs fixup. + $fn = $url; + $fn=~s|^/~(\w+)|/home/$1/public_html|; + $fn=~s|/[^/]*/ratserver$||; + } my $errtext=''; my $outtext=''; if ($mode ne 'loadonly') { - $errtext=&savemap($fn,$errtext); + $errtext=&savemap($fn,$errtext,$r); } ($outtext,$errtext)=&loadmap($fn,$errtext);