Diff for /loncom/interface/lonmeta.pm between versions 1.191 and 1.192

version 1.191, 2007/01/02 11:38:28 version 1.192, 2007/01/02 12:54:40
Line 1349  ENDEDIT Line 1349  ENDEDIT
     ($path, $new_fn) = ($fn =~ m|/(portfolio.*)/([^/]*)$|);      ($path, $new_fn) = ($fn =~ m|/(portfolio.*)/([^/]*)$|);
         }          }
                 $r->print(&store_portfolio_metadata($formname,$file_content,$path,                  $r->print(&store_portfolio_metadata($formname,$file_content,$path,
                                                     $new_fn));                                                      $new_fn,$uri));
             } else {              } else {
  if (! ($mfh=Apache::File->new('>'.$fn))) {   if (! ($mfh=Apache::File->new('>'.$fn))) {
     $r->print('<p><font color="red">'.      $r->print('<p><font color="red">'.
Line 1358  ENDEDIT Line 1358  ENDEDIT
  } else {   } else {
     print $mfh ($file_content);      print $mfh ($file_content);
                     close($mfh);                      close($mfh);
                       &update_metadata_table($uri);
     $r->print('<p><font color="blue">'.&mt('Wrote Metadata').      $r->print('<p><font color="blue">'.&mt('Wrote Metadata').
       ' '.&Apache::lonlocal::locallocaltime(time).        ' '.&Apache::lonlocal::locallocaltime(time).
       '</font></p>');        '</font></p>');
Line 1388  ENDEDIT Line 1389  ENDEDIT
 }  }
   
 sub store_portfolio_metadata {  sub store_portfolio_metadata {
     my ($formname,$content,$path,$new_fn) = @_;      my ($formname,$content,$path,$new_fn,$uri) = @_;
     $env{'form.'.$formname}=$content."\n";      $env{'form.'.$formname}=$content."\n";
     $env{'form.'.$formname.'.filename'}=$new_fn;      $env{'form.'.$formname.'.filename'}=$new_fn;
     my $result =&Apache::lonnet::userfileupload($formname,'',$path);      my $result =&Apache::lonnet::userfileupload($formname,'',$path);
Line 1397  sub store_portfolio_metadata { Line 1398  sub store_portfolio_metadata {
                   &mt('Could not write metadata').', '.                    &mt('Could not write metadata').', '.
                   &mt('FAIL').'</font></p>';                    &mt('FAIL').'</font></p>';
     } else {      } else {
           &update_metadata_table($uri);
         return '<p><font color="blue">'.&mt('Wrote Metadata').          return '<p><font color="blue">'.&mt('Wrote Metadata').
                   ' '.&Apache::lonlocal::locallocaltime(time).'</font></p>';                    ' '.&Apache::lonlocal::locallocaltime(time).'</font></p>';
     }      }
 }  }
   
   sub update_metadata_table {
       my ($uri) = @_;
       my ($group,$file_name);
       my ($udom,$uname,$remainder) =
           ($uri=~m -^/+(?:uploaded|editupload)/+($match_domain)/+($match_name)/+(.*)$-);
   
       if ($remainder =~ /groups\/(\w+)\/portfolio(\/.+)$/) {
           $group = $1;
           $file_name = $2;
       } elsif ($remainder =~ /portfolio(\/.+)$/) {
           $file_name = $1;
       }
       $file_name =~ s/\.meta$//;
       my $current_permissions =
           &Apache::lonnet::get_portfile_permissions($udom,$uname);
       my %access_controls =
           &Apache::lonnet::get_access_controls($current_permissions,$group,
                                                $group.$file_name);
       my $access_hash = $access_controls{$file_name};
       my $available = 0;
       if (ref($access_hash) eq 'HASH') {
           foreach my $key (keys(%{$access_hash})) {
               my ($num,$scope,$end,$start) =
                   ($key =~ /^([^:]+):([a-z]+)_(\d*)_?(\d*)$/);
               if ($scope eq 'public' || $scope eq 'guest') {
                   $available = 1;
                   last;
               }
           }
       }
       if ($available) {
           my $result =
               &Apache::lonnet::update_portfolio_table($uname,$udom,
               $file_name,'portfolio_metadata',$group);
       }
   }
   
   
 1;  1;
 __END__  __END__
   

Removed from v.1.191  
changed lines
  Added in v.1.192


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