The repoze.what XML plugin

Author:Gustavo Narea.
Latest version:1.0rc2

Overview

The repoze.what XML plugin adds support to XML source adapters on this authorization framework.

How to install

This package has no external dependencies and can be installed by running:

easy_install repoze.what.plugins.xml

It has been tested under Python v2.5 and v2.6. It’s not expected to work on previous versions.

Adapters

The XML plugin provides one group adapter and one permission adapter, which receive one parameter: The XML file.

class repoze.what.plugins.xml.adapters.XMLGroupsAdapter(file, **kwargs)

The XML group source adapter.

The file is the path to the XML-based group source or the file object for such a file.

Additional arguments will be passed to repoze.what.adapters.BaseSourceAdapter.

For example, if we have the following XML-based group source:

<?xml version="1.0" encoding="UTF-8"?>
<groups>
    <group name="admins">
        <member name="rms" />
    </group>
    <group name="developers">
        <member name="rms" />
        <member name="linus" />
    </group>
    <group name="trolls">
        <member name="sballmer" />
    </group>
    <group name="python">
        <!-- An empty group -->
    </group>
    <group name="php">
        <!-- An empty group -->
    </group>
</groups>

Then we can use its adapter like this:

>>> from repoze.what.plugins.xml.adapters import XMLGroupsAdapter
>>> groups = XMLGroupsAdapter('tests/fixture/groups.xml')
>>> groups.get_section_items('developers')
set([u'rms', u'linus'])
class repoze.what.plugins.xml.adapters.XMLPermissionsAdapter(file, **kwargs)

The XML permission source adapter.

The file is the path to the XML-based permission source or the file object for such a file.

Additional arguments will be passed to repoze.what.adapters.BaseSourceAdapter.

For example, if we have the following XML-based permission source:

<?xml version="1.0" encoding="UTF-8"?>
<permissions>
    <permission name="edit-site">
        <group name="admins" />
        <group name="developers" />
    </permission>
    <permission name="commit">
        <group name="developers" />
    </permission>
    <permission name="see-site">
        <group name="trolls" />
    </permission>
</permissions>

Then we can use its adapter like this:

>>> from repoze.what.plugins.xml.adapters import XMLPermissionsAdapter
>>> permissions = XMLPermissionsAdapter('tests/fixture/permissions.xml')
>>> permissions.get_section_items('edit-site')
set([u'admins', u'developers'])

They are both imported into the repoze.what.plugins.xml namespace, so you can do:

from repoze.what.plugins.xml import XMLGroupsAdapter, XMLPermissionsAdapter

Table Of Contents

Next topic

repoze.what.plugins.xml releases

This Page