1234567891011121314151617181920212223242526272829303132333435 |
- from importlib import import_module
- from django.conf import settings
- __ALL__ = ['providers']
- # Manager for permission providers
- class PermissionProviders(object):
- def __init__(self):
- self._initialized = False
- self._providers = []
- self._providers_dict = {}
- def _assert_providers_imported(self):
- if not self._initialized:
- self._import_providers()
- self._initialized = True
- def _import_providers(self):
- for namespace in settings.MISAGO_ACL_EXTENSIONS:
- self._providers.append((namespace, import_module(namespace)))
- self._providers_dict[namespace] = import_module(namespace)
- def list(self):
- self._assert_providers_imported()
- return self._providers
- def dict(self):
- self._assert_providers_imported()
- return self._providers_dict
- providers = PermissionProviders()
|