Revision 7128
Added by ben leinfelder about 12 years ago
MetacatHandler.java | ||
---|---|---|
1630 | 1630 |
*/ |
1631 | 1631 |
public String handleInsertOrUpdateAction(String ipAddress, String userAgent, |
1632 | 1632 |
HttpServletResponse response, PrintWriter out, Hashtable<String, String[]> params, |
1633 |
String user, String[] groups, boolean generateSystemMetadata) { |
|
1633 |
String user, String[] groups, boolean generateSystemMetadata, boolean writeAccessRules) {
|
|
1634 | 1634 |
Logger logMetacat = Logger.getLogger(MetacatHandler.class); |
1635 | 1635 |
DBConnection dbConn = null; |
1636 | 1636 |
int serialNumber = -1; |
... | ... | |
1733 | 1733 |
if (validate) { |
1734 | 1734 |
// set a dtd base validation parser |
1735 | 1735 |
String rule = DocumentImpl.DTD; |
1736 |
documentWrapper = new DocumentImplWrapper(rule, validate); |
|
1736 |
documentWrapper = new DocumentImplWrapper(rule, validate, writeAccessRules);
|
|
1737 | 1737 |
} else { |
1738 | 1738 |
|
1739 | 1739 |
namespace = XMLSchemaService.findDocumentNamespace(xmlReader); |
... | ... | |
1747 | 1747 |
// using emlparser to check id validation |
1748 | 1748 |
@SuppressWarnings("unused") |
1749 | 1749 |
EMLParser parser = new EMLParser(doctext[0]); |
1750 |
documentWrapper = new DocumentImplWrapper(rule, true); |
|
1750 |
documentWrapper = new DocumentImplWrapper(rule, true, writeAccessRules);
|
|
1751 | 1751 |
} else if ( |
1752 | 1752 |
namespace.compareTo(DocumentImpl.EML2_1_0NAMESPACE) == 0 |
1753 | 1753 |
|| namespace.compareTo(DocumentImpl.EML2_1_1NAMESPACE) == 0) { |
... | ... | |
1756 | 1756 |
// using emlparser to check id validation |
1757 | 1757 |
@SuppressWarnings("unused") |
1758 | 1758 |
EMLParser parser = new EMLParser(doctext[0]); |
1759 |
documentWrapper = new DocumentImplWrapper(rule, true); |
|
1759 |
documentWrapper = new DocumentImplWrapper(rule, true, writeAccessRules);
|
|
1760 | 1760 |
} else { |
1761 | 1761 |
// set schema base validation parser |
1762 | 1762 |
String rule = DocumentImpl.SCHEMA; |
1763 |
documentWrapper = new DocumentImplWrapper(rule, true); |
|
1763 |
documentWrapper = new DocumentImplWrapper(rule, true, writeAccessRules);
|
|
1764 | 1764 |
} |
1765 | 1765 |
} else { |
1766 |
documentWrapper = new DocumentImplWrapper("", false); |
|
1766 |
documentWrapper = new DocumentImplWrapper("", false, writeAccessRules);
|
|
1767 | 1767 |
} |
1768 | 1768 |
} |
1769 | 1769 |
|
... | ... | |
2865 | 2865 |
String[] doctextArr = new String[1]; |
2866 | 2866 |
doctextArr[0] = doctext; |
2867 | 2867 |
params.put("doctext", doctextArr); |
2868 |
boolean writeAccessRules = true; |
|
2868 | 2869 |
//call the insert routine |
2869 | 2870 |
handleInsertOrUpdateAction(request.getRemoteAddr(), request.getHeader("User-Agent"), response, out, |
2870 |
params, username, groupnames, true); |
|
2871 |
params, username, groupnames, true, writeAccessRules);
|
|
2871 | 2872 |
} |
2872 | 2873 |
catch(Exception e) |
2873 | 2874 |
{ |
Also available in: Unified diff
add a parameter for optionally writing EML-embedded access control rules to the Metacat DB.
https://redmine.dataone.org/issues/2584
https://redmine.dataone.org/issues/2583