Skip to content

Commit 820c8d4

Browse files
refactor: override casbin adapter config for a safe load
1 parent cb06ea2 commit 820c8d4

2 files changed

Lines changed: 21 additions & 1 deletion

File tree

openedx_authz/engine/apps.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from django.apps import AppConfig
2+
from django.conf import settings
3+
from django.core.exceptions import ImproperlyConfigured
4+
5+
6+
class CasbinAdapterConfig(AppConfig):
7+
name = "casbin_adapter"
8+
9+
def ready(self):
10+
"""Initialization layer for the casbin_adapter app."""
11+
12+
try:
13+
from casbin_adapter.enforcer import initialize_enforcer
14+
15+
db_alias = getattr(settings, "CASBIN_DB_ALIAS", "default")
16+
initialize_enforcer(db_alias)
17+
except ImproperlyConfigured:
18+
# The app might not be fully configured yet (e.g., during migrations).
19+
# In such cases, we skip the enforcer initialization.
20+
pass

openedx_authz/settings/common.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def plugin_settings(settings):
1717
settings: The Django settings object
1818
"""
1919
# Add external third-party apps to INSTALLED_APPS
20-
casbin_adapter_app = "casbin_adapter.apps.CasbinAdapterConfig"
20+
casbin_adapter_app = "openedx_authz.engine.apps.CasbinAdapterConfig"
2121
if casbin_adapter_app not in settings.INSTALLED_APPS:
2222
settings.INSTALLED_APPS.append(casbin_adapter_app)
2323
# Add Casbin configuration

0 commit comments

Comments
 (0)