--- rat/lonratsrv.pm 2002/06/24 14:05:51 1.18 +++ 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.18 2002/06/24 14:05:51 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$/) || @@ -262,19 +262,17 @@ sub savemap { } elsif ($parts[0] eq 'objparms') { undef %alltypes; undef %allvalues; - foreach (split(/:/,$parts[$#parts])) { + map { my ($type,$name,$value)=split(/\_\_\_/,$_); $alltypes{$name}=$type; $allvalues{$name}=$value; - } - foreach (keys %allvalues) { - if ($allvalues{$_} ne '') { + } split(/:/,$parts[$#parts]); + map { $outstr.='' ."\n"; - } - } + } keys %allvalues; } elsif (($parts[0] ne '') && ($graphdef)) { # ------------------------------------------------------------- Graphical input $outstr.='<'.$parts[0]; @@ -297,7 +295,7 @@ sub savemap { } } 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; } @@ -318,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);