4 This module acts as a loader for the pluggable authorization system.
6 Any Python module which wishes to provide an authorization scheme for
7 Invirt should advertise an entry point in the invirt.authz group with
8 a unique name. That name can then be configured in
9 /etc/invirt/master.yaml as the authz mechanism.
14 from invirt.config import structs as cfg
17 def expand_owner(name):
18 """Expand an "owner" to a list of authorized users."""
19 for ep in pkg_resources.iter_entry_points('invirt.authz', cfg.authz.name):
20 return ep.load().expandOwner(name)
23 def expand_admin(name):
24 """Expand an "administrator" to a list of authorized users."""
25 for ep in pkg_resources.iter_entry_points('invirt.authz', cfg.authz.name):
26 return ep.load().expandAdmin(name)