Esempio n. 1
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. 2
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. 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_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. 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):
        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. 7
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. 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 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