openedx_authz package#
Subpackages#
- openedx_authz.api package
- openedx_authz.constants package
- openedx_authz.engine package
- openedx_authz.management package
- openedx_authz.models package
- openedx_authz.rest_api package
- openedx_authz.settings package
Submodules#
openedx_authz.admin module#
Admin configuration for openedx_authz.
- class openedx_authz.admin.CasbinRuleAdmin(model, admin_site)
Bases:
ModelAdminAdmin for CasbinRule to display additional metadata.
- form
alias of
CasbinRuleForm
- inlines = [<class 'openedx_authz.admin.ExtendedCasbinRuleInline'>]
- list_display = ('id', 'ptype', 'v0', 'v1', 'v2', 'v3', 'v4', 'v5')
- list_filter = ('ptype',)
- property media
- search_fields = ('ptype', 'v0', 'v1', 'v2', 'v3', 'v4', 'v5')
- class openedx_authz.admin.CasbinRuleForm(*args, **kwargs)
Bases:
ModelFormCustom form for CasbinRule to make v3, v4, v5 fields optional.
- class Meta
Bases:
objectMeta class for CasbinRuleForm.
- fields = '__all__'
- model
alias of
CasbinRule
- base_fields = {'ptype': <django.forms.fields.CharField object>, 'v0': <django.forms.fields.CharField object>, 'v1': <django.forms.fields.CharField object>, 'v2': <django.forms.fields.CharField object>, 'v3': <django.forms.fields.CharField object>, 'v4': <django.forms.fields.CharField object>, 'v5': <django.forms.fields.CharField object>}
- declared_fields = {}
- property media
Return all media required to render the widgets on this form.
- class openedx_authz.admin.ExtendedCasbinRuleInline(parent_model, admin_site)
Bases:
StackedInlineInline admin for ExtendedCasbinRule to display additional metadata.
- can_delete = False
- extra = 0
- fields = ('casbin_rule_key', 'scope', 'subject', 'description', 'metadata', 'created_at', 'updated_at')
- property media
- model
alias of
ExtendedCasbinRule
- readonly_fields = ('casbin_rule_key', 'scope', 'subject', 'created_at', 'updated_at')
openedx_authz.apps module#
openedx_authz Django application initialization.
- class openedx_authz.apps.OpenedxAuthzConfig(app_name, app_module)
Bases:
AppConfigConfiguration for the openedx_authz Django application.
- default_auto_field = 'django.db.models.BigAutoField'
- name = 'openedx_authz'
- plugin_app = {'settings_config': {'cms.djangoapp': {'common': {'relative_path': 'settings.common'}, 'production': {'relative_path': 'settings.production'}, 'test': {'relative_path': 'settings.test'}}, 'lms.djangoapp': {'common': {'relative_path': 'settings.common'}, 'production': {'relative_path': 'settings.production'}, 'test': {'relative_path': 'settings.test'}}}, 'url_config': {'cms.djangoapp': {'namespace': 'openedx-authz', 'regex': '^api/', 'relative_path': 'urls'}, 'lms.djangoapp': {'namespace': 'openedx-authz', 'regex': '^api/', 'relative_path': 'urls'}}}
- ready()
Import signal handlers when Django starts.
- verbose_name = 'Open edX AuthZ'
openedx_authz.handlers module#
Signal handlers for the authorization framework.
These handlers ensure proper cleanup and consistency when models are deleted.
- openedx_authz.handlers.delete_casbin_rule_on_extended_rule_deletion(sender, instance, **kwargs)
Delete the companion CasbinRule after its ExtendedCasbinRule disappears.
The handler keeps authorization data symmetric with three common flows:
Direct ExtendedCasbinRule deletes (API/UI) trigger removal of the linked CasbinRule.
Cascades from Scope or Subject deletions clear their ExtendedCasbinRule rows and, via this handler, the matching CasbinRule entries.
Cascades initiated from the CasbinRule side (enforcer cleanups) leave the query as a no-op because the row is already gone.
Running on
post_deleteensures database cascades complete before the cleanup runs, so enforcer-driven deletions no longer raise false errors.- Parameters:
sender – The model class (ExtendedCasbinRule).
instance – The ExtendedCasbinRule instance being deleted.
**kwargs – Additional keyword arguments from the signal.
- openedx_authz.handlers.unassign_roles_on_user_retirement(sender, user, **kwargs)
Unassign roles from a user when they are retired.
This handler is triggered when a user is retired in the LMS. It ensures that any roles assigned to the user are removed, maintaining the integrity of the authorization system.
- Parameters:
sender – The model class (User).
user – The user instance being retired.
**kwargs – Additional keyword arguments from the signal.
openedx_authz.urls module#
Open edX AuthZ API URLs.
Module contents#
Open edX AuthZ provides the architecture and foundations of the authorization framework.