r4601 - trunk/src/perl
walbridge at ecoinformatics.org
walbridge at ecoinformatics.org
Wed Nov 19 18:57:59 PST 2008
Author: walbridge
Date: 2008-11-19 18:57:59 -0800 (Wed, 19 Nov 2008)
New Revision: 4601
Modified:
trunk/src/perl/register-dataset.cgi
Log:
updated handleModAccept to be EML 2.1.0 compliant, streamlined document generation to use EML creation functions.
Modified: trunk/src/perl/register-dataset.cgi
===================================================================
--- trunk/src/perl/register-dataset.cgi 2008-11-20 02:26:45 UTC (rev 4600)
+++ trunk/src/perl/register-dataset.cgi 2008-11-20 02:57:59 UTC (rev 4601)
@@ -2892,29 +2892,8 @@
if ($isMod < 0) {
return;
}
- # change the access rules
- ## create the access block
- my $accessblock = '';
- $accessblock .= "<access authSystem=\"knb\" order=\"denyFirst\">\n";
- $accessblock .= "<allow>\n";
- $accessblock .= "<principal>$username</principal>\n";
- $accessblock .= "<permission>all</permission>\n";
- $accessblock .= "</allow>\n";
- foreach (split(":",$moderators)) {
- $accessblock .= "<allow>\n";
- $accessblock .= "<principal>".$_."</principal>\n";
- $accessblock .= "<permission>all</permission>\n";
- $accessblock .= "</allow>\n";
- }
-
- $accessblock .= "<allow>\n";
- $accessblock .= "<principal>public</principal>\n";
- $accessblock .= "<permission>read</permission>\n";
- $accessblock .= "</allow>\n";
- $accessblock .= "</access>\n";
-
- ## read the document from
+ # read the document from
my $parser = XML::LibXML->new();
my $title = '';
my $contactEmailAddress = '';
@@ -2932,19 +2911,27 @@
$response = $metacat->read($docid);
my $docFromMetacat = $response->content();
my $xmldoc = $parser->parse_string($docFromMetacat);
+ my $dataElem = '';
if ($xmldoc eq "" || $docFromMetacat=~ /<error/) {
# not able to parse
$errorMessage = $errorMessage." Error in reading the following docid:".$docid;
} else {
+ my $emldoc = '';
$xmldoc = transformEml($xmldoc);
-
+
+ # pull out existing dataset entry
$results = $xmldoc->findnodes('//dataset');
+ foreach my $r ($results->get_nodelist) {
+ $dataElem .= $r->toString();
+ }
+
+ $emldoc .= EMLStart();
+ # TODO SCW: make sure this replacement works as expected
+ $emldoc .= accessElement("true");
+ $emldoc .= $dataElem;
+ $emldoc .= EMLEnd();
- my ($emldoc, $temp) = split('<access authSystem=', $docFromMetacat);
- $emldoc .= $accessblock;
- $emldoc .= "</dataset>\n</eml:eml>\n";
-
#debug("Document created by handleModAccept is " . $emldoc);
# update the document
my $newDocid = incrementRevision($docid);
@@ -2995,7 +2982,7 @@
$title = '';
}
- $findNodes = $xmldoc->findnodes('//dataset/access/allow');
+ $findNodes = $xmldoc->findnodes('//access/allow');
if ($findNodes->size() > 0) {
# found title
my $node = '';
More information about the Metacat-cvs
mailing list