diff --git a/README.md b/README.md index 2b8caaa..db48f37 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Based on [Officially Supported Databases](https://docs.djangoproject.com/en/3.0/ pip install casbin-django-orm-adapter ``` -Add `casbin_adapter.apps.CasbinAdapterConfig` to your `INSTALLED_APPS` +Add `casbin_adapter` to your `INSTALLED_APPS` ```python # settings.py @@ -36,7 +36,7 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) INSTALLED_APPS = [ ... - 'casbin_adapter.apps.CasbinAdapterConfig', + 'casbin_adapter', ... ] diff --git a/casbin_adapter/apps.py b/casbin_adapter/apps.py index 2674874..3cc38ba 100644 --- a/casbin_adapter/apps.py +++ b/casbin_adapter/apps.py @@ -4,9 +4,3 @@ class CasbinAdapterConfig(AppConfig): name = "casbin_adapter" - - def ready(self): - from .enforcer import initialize_enforcer - - db_alias = getattr(settings, "CASBIN_DB_ALIAS", "default") - initialize_enforcer(db_alias) diff --git a/casbin_adapter/enforcer.py b/casbin_adapter/enforcer.py index 70d2eaf..2ef7bc2 100644 --- a/casbin_adapter/enforcer.py +++ b/casbin_adapter/enforcer.py @@ -12,7 +12,7 @@ class ProxyEnforcer(Enforcer): _initialized = False - db_alias = "default" + db_alias = getattr(settings, "CASBIN_DB_ALIAS", "default") def __init__(self, *args, **kwargs): if self._initialized: @@ -43,9 +43,9 @@ def _load(self): self.set_role_manager(role_manager) def __getattribute__(self, name): - safe_methods = ["__init__", "_load", "_initialized"] + safe_methods = ["__init__", "_load", "_initialized", "__class__"] if not super().__getattribute__("_initialized") and name not in safe_methods: - initialize_enforcer(self.db_alias) + initialize_enforcer(super().__getattribute__("db_alias")) if not super().__getattribute__("_initialized"): raise Exception( (