Project

General

Profile

« Previous | Next » 

Revision 7128

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

View differences:

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