--- loncom/publisher/lonpublisher.pm 2003/11/05 20:27:20 1.144
+++ loncom/publisher/lonpublisher.pm 2004/01/27 23:11:23 1.145.2.1.2.1
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Publication Handler
#
-# $Id: lonpublisher.pm,v 1.144 2003/11/05 20:27:20 www Exp $
+# $Id: lonpublisher.pm,v 1.145.2.1.2.1 2004/01/27 23:11:23 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -143,6 +143,7 @@ use Apache::lonnet();
use Apache::loncommon();
use Apache::lonmysql;
use Apache::lonlocal;
+use Apache::loncfile;
use vars qw(%metadatafields %metadatakeys);
my %addid;
@@ -218,7 +219,10 @@ sub metaeval {
$newentry=~s/^\s*//;
if ($newentry !~m|^/res|) { $newentry=$prefix.$newentry; }
}
- unless ($metadatafields{$unikey}=~/\w/) {
+# actually store
+ if ( $entry eq 'rule' && exists($metadatafields{$unikey})) {
+ $metadatafields{$unikey}.=','.$newentry;
+ } else {
$metadatafields{$unikey}=$newentry;
}
}
@@ -266,7 +270,8 @@ sub metaread {
my ($logfile,$fn,$prefix)=@_;
unless (-e $fn) {
print($logfile 'No file '.$fn."\n");
- return '
No file: '.$fn.'';
+ return '
No file: '.
+ &Apache::loncfile::display($fn).'';
}
print($logfile 'Processing '.$fn."\n");
my $metastring;
@@ -275,7 +280,8 @@ sub metaread {
$metastring=join('',<$metafh>);
}
&metaeval($metastring,$prefix);
- return '
Processed file: '.$fn.'';
+ return '
Processed file: '.
+ &Apache::loncfile::display($fn).'';
}
#########################################
@@ -1725,12 +1731,14 @@ sub handler {
return HTTP_NOT_ACCEPTABLE;
}
- unless (&Apache::lonnet::homeserver($cuname,$cudom)
- eq $r->dir_config('lonHostID')) {
+ my $home=&Apache::lonnet::homeserver($cuname,$cudom);
+ my $allowed=0;
+ my @ids=&Apache::lonnet::current_machine_ids();
+ foreach my $id (@ids) { if ($id eq $home) { $allowed = 1; } }
+ unless ($allowed) {
$r->log_reason($cuname.' at '.$cudom.
' trying to publish file '.$ENV{'form.filename'}.
- ' ('.$fn.') - not homeserver ('.
- &Apache::lonnet::homeserver($cuname,$cudom).')',
+ ' ('.$fn.') - not homeserver ('.$home.')',
$r->filename);
return HTTP_NOT_ACCEPTABLE;
}