Esempio n. 1
0
def exportTypesTool(context):
    """ Export types tool content types as a set of XML files.
    """
    site = context.getSite()

    ttool = getToolByName(site, 'portal_types')
    if ttool is None:
        return 'Types tool: Nothing to export.'

    ttc = TypesToolExportConfigurator(site).__of__(site)
    tool_xml = ttc.generateXML()
    context.writeDataFile(_FILENAME, tool_xml, 'text/xml')

    for ti_id in ttool.listContentTypes():
        type_filename = '%s.xml' % ti_id.replace(' ', '_')
        ti = getattr(ttool, ti_id)

        exporter = INodeExporter(ti)
        if exporter is None:
            continue

        doc = PrettyDocument()
        doc.appendChild(exporter.exportNode(doc))
        context.writeDataFile(type_filename, doc.toprettyxml(' '), 'text/xml',
                              'types')

    # XXX: YAGNI?
    # exportScriptsFromContainer(ttool, ('typestool_scripts',))

    return 'Types tool exported'
Esempio n. 2
0
def exportTypesTool(context):
    """ Export types tool content types as a set of XML files.
    """
    site = context.getSite()

    ttool = getToolByName(site, 'portal_types')
    if ttool is None:
        return 'Types tool: Nothing to export.'

    ttc = TypesToolExportConfigurator(site).__of__(site)
    tool_xml = ttc.generateXML()
    context.writeDataFile(_FILENAME, tool_xml, 'text/xml')

    for ti_id in ttool.listContentTypes():
        type_filename = '%s.xml' % ti_id.replace( ' ', '_' )
        ti = getattr(ttool, ti_id)

        exporter = INodeExporter(ti)
        if exporter is None:
            continue

        doc = PrettyDocument()
        doc.appendChild(exporter.exportNode(doc))
        context.writeDataFile(type_filename, doc.toprettyxml(' '), 'text/xml',
                              'types')

    # XXX: YAGNI?
    # exportScriptsFromContainer(ttool, ('typestool_scripts',))

    return 'Types tool exported'
Esempio n. 3
0
    def test_attr_quoting(self):
        original = 'baz &nbsp;<bar>&"\''
        expected = ('<?xml version="1.0"?>\n'
                    '<doc foo="baz &amp;nbsp;&lt;bar&gt;&amp;&quot;\'"/>\n')

        doc = PrettyDocument()
        node = doc.createElement('doc')
        node.setAttribute('foo', original)
        doc.appendChild(node)
        self.assertEqual(doc.toprettyxml(' '), expected)
        # Reparse
        e = parseString(expected).documentElement
        self.assertEqual(e.getAttribute('foo'), original)
Esempio n. 4
0
    def test_attr_quoting(self):
        original = 'baz &nbsp;<bar>&"\''
        expected = ('<?xml version="1.0"?>\n'
                    '<doc foo="baz &amp;nbsp;&lt;bar&gt;&amp;&quot;\'"/>\n')

        doc = PrettyDocument()
        node = doc.createElement('doc')
        node.setAttribute('foo', original)
        doc.appendChild(node)
        self.assertEqual(doc.toprettyxml(' '), expected)
        # Reparse
        e = parseString(expected).documentElement
        self.assertEqual(e.getAttribute('foo'), original)
Esempio n. 5
0
    def test_text_quoting(self):
        original = 'goo &nbsp;<hmm>&"\''
        expected = ('<?xml version="1.0"?>\n'
                    '<doc>goo &amp;nbsp;&lt;hmm&gt;&amp;"\'</doc>\n')

        doc = PrettyDocument()
        node = doc.createElement('doc')
        child = doc.createTextNode(original)
        node.appendChild(child)
        doc.appendChild(node)
        self.assertEqual(doc.toprettyxml(' '), expected)
        # Reparse
        e = parseString(expected).documentElement
        self.assertEqual(e.childNodes[0].nodeValue, original)
Esempio n. 6
0
    def test_text_quoting(self):
        original = 'goo &nbsp;<hmm>&"\''
        expected = ('<?xml version="1.0"?>\n'
                    '<doc>goo &amp;nbsp;&lt;hmm&gt;&amp;"\'</doc>\n')

        doc = PrettyDocument()
        node = doc.createElement('doc')
        child = doc.createTextNode(original)
        node.appendChild(child)
        doc.appendChild(node)
        self.assertEqual(doc.toprettyxml(' '), expected)
        # Reparse
        e = parseString(expected).documentElement
        self.assertEqual(e.childNodes[0].nodeValue, original)
Esempio n. 7
0
    def test_text_quoting(self):
        from Products.GenericSetup.utils import PrettyDocument

        original = "goo &nbsp;<hmm>&\"'"
        expected = '<?xml version="1.0"?>\n' "<doc>goo &amp;nbsp;&lt;hmm&gt;&amp;\"'</doc>\n"

        doc = PrettyDocument()
        node = doc.createElement("doc")
        child = doc.createTextNode(original)
        node.appendChild(child)
        doc.appendChild(node)
        self.assertEqual(doc.toprettyxml(" "), expected)
        # Reparse
        e = _getDocumentElement(expected)
        self.assertEqual(e.childNodes[0].nodeValue, original)
Esempio n. 8
0
    def test_attr_quoting(self):
        from Products.GenericSetup.utils import PrettyDocument

        original = "baz &nbsp;<bar>&\"'"
        expected = '<?xml version="1.0"?>\n' '<doc bar="" foo="baz ' "&amp;nbsp;&lt;bar&gt;&amp;&quot;'\"/>\n"

        doc = PrettyDocument()
        node = doc.createElement("doc")
        node.setAttribute("foo", original)
        node.setAttribute("bar", None)
        doc.appendChild(node)
        self.assertEqual(doc.toprettyxml(" "), expected)
        # Reparse
        e = _getDocumentElement(expected)
        self.assertEqual(e.getAttribute("foo"), original)
Esempio n. 9
0
    def test_attr_quoting(self):
        from Products.GenericSetup.utils import PrettyDocument
        original = 'baz &nbsp;<bar>&"\''
        expected = ('<?xml version="1.0"?>\n'
                    '<doc bar="" foo="baz &amp;nbsp;&lt;bar&gt;&amp;&quot;\'"/>\n')

        doc = PrettyDocument()
        node = doc.createElement('doc')
        node.setAttribute('foo', original)
        node.setAttribute('bar', None)
        doc.appendChild(node)
        self.assertEqual(doc.toprettyxml(' '), expected)
        # Reparse
        e = _getDocumentElement(expected)
        self.assertEqual(e.getAttribute('foo'), original)
Esempio n. 10
0
    def test_attr_quoting(self):
        from Products.GenericSetup.utils import PrettyDocument
        original = 'baz &nbsp;<bar>&"\''
        expected = ('<?xml version="1.0"?>\n'
                    '<doc bar="" foo="baz '
                    '&amp;nbsp;&lt;bar&gt;&amp;&quot;\'"/>\n')

        doc = PrettyDocument()
        node = doc.createElement('doc')
        node.setAttribute('foo', original)
        node.setAttribute('bar', None)
        doc.appendChild(node)
        self.assertEqual(doc.toprettyxml(' '), expected)
        # Reparse
        e = _getDocumentElement(expected)
        self.assertEqual(e.getAttribute('foo'), original)
Esempio n. 11
0
def exportActionProviders(context):
    """ Export actions tool.
    """
    site = context.getSite()

    atool = getToolByName(site, 'portal_actions', None)
    if atool is None:
        return 'Actions tool: Nothing to export.'

    exporter = INodeExporter(atool)
    if exporter is None:
        return 'Actions tool: Export adapter misssing.'

    doc = PrettyDocument()
    doc.appendChild(exporter.exportNode(doc))
    context.writeDataFile(_FILENAME, doc.toprettyxml(' '), 'text/xml')
    return 'Actions tool exported.'
Esempio n. 12
0
def exportCookieCrumbler(context):
    """ Export cookie crumbler settings as an XML file.
    """
    site = context.getSite()

    cctool = getToolByName(site, 'cookie_authentication', None)
    if cctool is None:
        return 'Cookie crumbler: Nothing to export.'

    exporter = INodeExporter(cctool)
    if exporter is None:
        return 'Cookie crumbler: Export adapter misssing.'

    doc = PrettyDocument()
    doc.appendChild(exporter.exportNode(doc))
    context.writeDataFile(_FILENAME, doc.toprettyxml(' '), 'text/xml')
    return 'Cookie crumbler settings exported.'
Esempio n. 13
0
def exportCatalogTool(context):
    """ Export catalog tool.
    """
    site = context.getSite()

    ctool = getToolByName(site, 'portal_catalog', None)
    if ctool is None:
        return 'Catalog tool: Nothing to export.'

    exporter = INodeExporter(ctool)
    if exporter is None:
        return 'Catalog tool: Export adapter misssing.'

    doc = PrettyDocument()
    doc.appendChild(exporter.exportNode(doc))
    context.writeDataFile(_FILENAME, doc.toprettyxml(' '), 'text/xml')
    return 'Catalog tool exported.'
Esempio n. 14
0
def exportMailHost(context):
    """ Export mailhost settings as an XML file.
    """
    site = context.getSite()

    mailhost = getToolByName(site, 'MailHost', None)
    if mailhost is None:
        return 'Mailhost: Nothing to export.'

    exporter = INodeExporter(mailhost)
    if exporter is None:
        return 'Mailhost: Export adapter misssing.'

    doc = PrettyDocument()
    doc.appendChild(exporter.exportNode(doc))
    context.writeDataFile(_FILENAME, doc.toprettyxml(' '), 'text/xml')
    return 'Mailhost settings exported.'
Esempio n. 15
0
def exportActionProviders(context):
    """ Export actions tool.
    """
    site = context.getSite()

    atool = getToolByName(site, 'portal_actions', None)
    if atool is None:
        return 'Actions tool: Nothing to export.'

    exporter = INodeExporter(atool)
    if exporter is None:
        return 'Actions tool: Export adapter misssing.'

    doc = PrettyDocument()
    doc.appendChild(exporter.exportNode(doc))
    context.writeDataFile(_FILENAME, doc.toprettyxml(' '), 'text/xml')
    return 'Actions tool exported.'
Esempio n. 16
0
def exportMailHost(context):
    """ Export mailhost settings as an XML file.
    """
    site = context.getSite()

    mailhost = getToolByName(site, 'MailHost', None)
    if mailhost is None:
        return 'Mailhost: Nothing to export.'

    exporter = INodeExporter(mailhost)
    if exporter is None:
        return 'Mailhost: Export adapter misssing.'

    doc = PrettyDocument()
    doc.appendChild(exporter.exportNode(doc))
    context.writeDataFile(_FILENAME, doc.toprettyxml(' '), 'text/xml')
    return 'Mailhost settings exported.'
Esempio n. 17
0
def exportCatalogTool(context):
    """ Export catalog tool.
    """
    site = context.getSite()

    ctool = getToolByName(site, 'portal_catalog', None)
    if ctool is None:
        return 'Catalog tool: Nothing to export.'

    exporter = INodeExporter(ctool)
    if exporter is None:
        return 'Catalog tool: Export adapter misssing.'

    doc = PrettyDocument()
    doc.appendChild(exporter.exportNode(doc))
    context.writeDataFile(_FILENAME, doc.toprettyxml(' '), 'text/xml')
    return 'Catalog tool exported.'
Esempio n. 18
0
def exportCookieCrumbler(context):
    """ Export cookie crumbler settings as an XML file.
    """
    site = context.getSite()

    cctool = getToolByName(site, 'cookie_authentication', None)
    if cctool is None:
        return 'Cookie crumbler: Nothing to export.'

    exporter = INodeExporter(cctool)
    if exporter is None:
        return 'Cookie crumbler: Export adapter misssing.'

    doc = PrettyDocument()
    doc.appendChild(exporter.exportNode(doc))
    context.writeDataFile(_FILENAME, doc.toprettyxml(' '), 'text/xml')
    return 'Cookie crumbler settings exported.'
Esempio n. 19
0
def get_portlet_blacklist_xml(context, prefix):
    return_value = False

    doc = PrettyDocument()
    node = doc.createElement('portlets')

    key = '/'.join(context.getPhysicalPath())
    if key.startswith(prefix):
        key = key[len(prefix):]
    key = key or '/'

    for manager_name, manager in getUtilitiesFor(IPortletManager):
        assignable = queryMultiAdapter((context, manager),
                                       ILocalPortletAssignmentManager)
        if assignable is None:
            continue

        for category in (USER_CATEGORY, GROUP_CATEGORY, CONTENT_TYPE_CATEGORY,
                         CONTEXT_CATEGORY):  # noqa
            child = doc.createElement('blacklist')
            child.setAttribute('manager', manager_name)
            child.setAttribute('category', category)
            child.setAttribute('location', key)

            status = assignable.getBlacklistStatus(category)
            if status:
                child.setAttribute('status', u'block')
                return_value = True
            elif not status:
                child.setAttribute('status', u'show')
                return_value = True
            else:
                child.setAttribute('status', u'acquire')

            node.appendChild(child)

    doc.appendChild(node)
    xml = doc.toprettyxml(' ')
    doc.unlink()

    if return_value:
        yield xml
Esempio n. 20
0
def get_portlet_assignment_xml(context, prefix):
    doc = PrettyDocument()
    node = doc.createElement('portlets')
    for manager_name, manager in getUtilitiesFor(IPortletManager):
        mapping = queryMultiAdapter((context, manager),
                                    IPortletAssignmentMapping)
        if mapping is None:
            continue

        mapping = mapping.__of__(context)

        key = '/'.join(context.getPhysicalPath())
        if key.startswith(prefix):
            key = key[len(prefix):]
        key = key or '/'

        extract_mapping(doc, node, manager_name, CONTEXT_CATEGORY, key,
                        mapping)

    doc.appendChild(node)
    xml = patch_portlets_xml(doc.toprettyxml(' '), prefix)
    doc.unlink()
    return xml