This module acts as a loader for the pluggable authorization system.
Any Python module which wishes to provide an authorization scheme for
-Invirt should advertise an entry point in the invirt.authz group with
+Invirt should advertise an entry point in the invirt.authz namespace with
a unique name. That name can then be configured in
/etc/invirt/master.yaml as the authz mechanism.
"""
from invirt.config import config
+authz_module = next(pkg_resources.iter_entry_points('invirt.authz', config['authz.name'])).load()
+
def expand_owner(name):
- """Expand an "owner" to a list of authorized users."""
- for ep in pkg_resources.iter_entry_points('invirt.authz', config['authz.name']):
- return ep.load().expandOwner(name)
+ """Expand an 'owner' to a list of authorized users."""
+ return authz_module.expandOwner(name)
def expand_admin(name):
- """Expand an "administrator" to a list of authorized users."""
- for ep in pkg_resources.iter_entry_points('invirt.authz', config['authz.name']):
- return ep.load().expandAdmin(name)
+ """Expand an 'administrator' to a list of authorized users."""
+ return authz_module.expandAdmin(name)