--- loncom/lonnet/perl/lonnet.pm 2001/03/15 14:04:32 1.106 +++ loncom/lonnet/perl/lonnet.pm 2001/03/19 22:27:06 1.109 @@ -3,6 +3,8 @@ # # Functions for use by content handlers: # +# metadata_query(sql-query-string) : returns file handle of where sql +# results will be stored for query # plaintext(short) : plain text explanation of short term # fileembstyle(ext) : embed style in page for file extension # filedescription(ext) : descriptor text for file extension @@ -89,6 +91,7 @@ # 02/27/01 Scott Harrison # 3/2 Gerd Kortemeyer # 3/15 Scott Harrison +# 3/19 Gerd Kortemeyer package Apache::lonnet; @@ -625,12 +628,43 @@ sub log { return critical("log:$dom:$nam:$what",$hom); } +# ----------------------------------------------------- Devalidate Spreadsheets + +sub devalidate { + my $symb=shift; + my $cid=$ENV{'request.course.id'}; + if ($cid) { + my $key=$ENV{'user.name'}.':'.$ENV{'user.domain'}.':'; + my $status= + &reply('del:'.$ENV{'course.'.$cid.'.domain'}.':'. + $ENV{'course.'.$cid.'.num'}. + ':nohist_calculatedsheets:'. + &escape($key.'studentcalc:'), + $ENV{'course.'.$cid.'.home'}) + .' '. + &reply('del:'.$ENV{'user.domain'}.':'. + $ENV{'user.name'}. + ':nohist_calculatedsheets_'.$cid.':'. + &escape($key.'assesscalc:'.$symb), + $ENV{'user.home'}); + unless ($status eq 'ok ok') { + &logthis('Could not devalidate spreadsheet '. + $ENV{'user.name'}.' at '.$ENV{'user.domain'}.' for '. + $symb.': '.$status); + } + } +} + # ----------------------------------------------------------------------- Store sub store { my %storehash=@_; my $symb; - unless ($symb=escape(&symbread())) { return ''; } + unless ($symb=&symbread()) { return ''; } + + &devalidate($symb); + + $symb=escape($symb); my $namespace; unless ($namespace=$ENV{'request.course.id'}) { return ''; } my $namevalue=''; @@ -648,7 +682,11 @@ sub store { sub cstore { my %storehash=@_; my $symb; - unless ($symb=escape(&symbread())) { return ''; } + unless ($symb=&symbread()) { return ''; } + + &devalidate($symb); + + $symb=escape($symb); my $namespace; unless ($namespace=$ENV{'request.course.id'}) { return ''; } my $namevalue=''; @@ -1187,7 +1225,7 @@ sub definerole { sub metadata_query { my ($query)=@_; - my $reply=&reply("querysend:$query",'msul3'); + my $reply=&reply("querysend:".&escape($query),'msul3'); } # ------------------------------------------------------------------ Plain Text