oxutils 0.3.1__tar.gz → 0.3.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {oxutils-0.3.1 → oxutils-0.3.2}/PKG-INFO +1 -1
- {oxutils-0.3.1 → oxutils-0.3.2}/pyproject.toml +1 -1
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/jwt/auth.py +16 -30
- {oxutils-0.3.1 → oxutils-0.3.2}/README.md +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/apps.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/audit/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/audit/apps.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/audit/export.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/audit/locale/fr/LC_MESSAGES/django.mo +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/audit/locale/fr/LC_MESSAGES/django.po +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/audit/masks.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/audit/migrations/0001_initial.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/audit/migrations/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/audit/models.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/audit/settings.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/audit/utils.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/adapter.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/admin.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/app_settings.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/apps.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/constants.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/controllers.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/emails/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/emails/controllers.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/emails/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/emails/services.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/exceptions.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/invitations/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/invitations/backend.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/invitations/controllers.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/invitations/models.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/invitations/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/invitations/tokens.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/adapter.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/base/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/base/controllers.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/base/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/recovery_codes/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/recovery_codes/controllers.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/recovery_codes/flows.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/recovery_codes/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/recovery_codes/services.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/totp/__ini__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/totp/controllers.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/totp/flows.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/totp/permissions.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/totp/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/totp/services.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mfa/utils.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/migrations/0001_initial.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/migrations/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/mixins.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/models.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/password_reset/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/password_reset/controllers.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/password_reset/models.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/password_reset/permissions.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/password_reset/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/registration/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/registration/controllers.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/registration/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/sessions/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/sessions/controllers.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/sessions/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/signals.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/templatetags/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/templatetags/spa_urls.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/tokens/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/tokens/app_settings.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/tokens/models.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/tokens/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/tokens/tokens.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/tokens/utils.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/auth/utils.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/celery/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/celery/base.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/celery/settings.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/conf.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/constants.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/context/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/context/site_name_processor.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/admin.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/apps.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/caches.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/controllers.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/enums.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/management/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/management/commands/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/management/commands/sync_currency.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/migrations/0001_initial.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/migrations/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/models.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/signals.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/tests.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/currency/utils.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/enums/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/enums/audit.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/enums/invoices.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/exceptions.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/functions.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/jwt/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/jwt/middleware.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/jwt/models.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/jwt/tokens.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/jwt/utils.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/logger/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/logger/receivers.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/logger/settings.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/mixins/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/mixins/base.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/mixins/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/mixins/services.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/models/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/models/base.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/models/billing.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/models/change_tracker.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/models/fields.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/models/invoice.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/admin.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/apps.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/authorization.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/cacheops.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/caches.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/checks.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/constants.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/context.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/controllers.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/enums.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/exceptions.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/locale/fr/LC_MESSAGES/django.mo +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/locale/fr/LC_MESSAGES/django.po +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/management/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/management/commands/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/management/commands/grant_tenant_owners.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/management/commands/init_oxiliere_system.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/middleware.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/migrations/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/models.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/permissions.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/services.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/settings.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/signals.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/tests.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/utils.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/pagination/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/pagination/cursor.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/pdf/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/pdf/printer.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/pdf/utils.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/pdf/views.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/actions.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/admin.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/apps.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/caches.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/checks.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/constants.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/controllers.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/exceptions.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/locale/fr/LC_MESSAGES/django.mo +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/locale/fr/LC_MESSAGES/django.po +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/management/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/management/commands/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/management/commands/load_permission_preset.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/migrations/0001_initial.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/migrations/0002_alter_grant_role.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/migrations/0003_alter_grant_options_alter_group_options_and_more.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/migrations/0004_group_app_group_permissions_app_9a9924_idx.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/migrations/0005_role_app.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/migrations/0006_alter_rolegrant_options_and_more.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/migrations/0007_grant_locked_alter_grant_role_and_more.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/migrations/0008_remove_grant_unique_user_scope_role_and_more.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/migrations/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/models.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/perms.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/queryset.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/schemas.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/services.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/tests.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/permissions/utils.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/py.typed +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/s3.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/settings.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/templates/account/email/base_message.txt +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/templates/email/password/reset_email_message.html +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/templates/email/password/reset_email_message.txt +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/templates/email/password/reset_email_subject.txt +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/templates/email/signup/email_message.html +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/templates/email/signup/email_subject.txt +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/templates/verified.html +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/types.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/users/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/users/admin.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/users/apps.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/users/locale/fr/LC_MESSAGES/django.mo +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/users/locale/fr/LC_MESSAGES/django.po +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/users/migrations/0001_initial.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/users/migrations/0002_alter_user_first_name_alter_user_last_name.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/users/migrations/0003_user_photo.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/users/migrations/0004_alter_user_options.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/users/migrations/__init__.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/users/models.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/users/tests.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/users/utils.py +0 -0
- {oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/utils.py +0 -0
|
@@ -1,38 +1,30 @@
|
|
|
1
1
|
import os
|
|
2
|
-
from typing import Dict,
|
|
3
|
-
|
|
4
|
-
from django.
|
|
2
|
+
from typing import Any, Dict, List, Optional, Tuple, Type
|
|
3
|
+
|
|
4
|
+
from django.contrib.auth import SESSION_KEY, get_user_model
|
|
5
|
+
from django.contrib.auth import authenticate as django_authenticate
|
|
6
|
+
from django.contrib.auth import login as django_login
|
|
5
7
|
from django.contrib.auth.models import AbstractUser
|
|
6
|
-
from django.contrib.auth import (
|
|
7
|
-
authenticate as django_authenticate,
|
|
8
|
-
login as django_login,
|
|
9
|
-
get_user_model
|
|
10
|
-
)
|
|
11
|
-
from jwcrypto import jwk
|
|
12
8
|
from django.core.exceptions import ImproperlyConfigured
|
|
13
|
-
|
|
14
|
-
from
|
|
15
|
-
from
|
|
16
|
-
JWTBaseAuthentication,
|
|
17
|
-
JWTStatelessUserAuthentication
|
|
18
|
-
)
|
|
9
|
+
from django.http import HttpRequest
|
|
10
|
+
from django.utils.translation import gettext_lazy as _
|
|
11
|
+
from jwcrypto import jwk
|
|
19
12
|
from ninja.security import (
|
|
20
|
-
HttpBearer,
|
|
21
13
|
APIKeyCookie,
|
|
22
14
|
HttpBasicAuth,
|
|
15
|
+
HttpBearer,
|
|
23
16
|
)
|
|
17
|
+
from ninja.security.base import AuthBase
|
|
18
|
+
from ninja_jwt.authentication import JWTBaseAuthentication, JWTStatelessUserAuthentication
|
|
24
19
|
from ninja_jwt.exceptions import InvalidToken
|
|
25
20
|
from ninja_jwt.settings import api_settings
|
|
21
|
+
|
|
26
22
|
from oxutils.constants import ACCESS_TOKEN_COOKIE
|
|
27
23
|
from oxutils.settings import oxi_settings
|
|
28
24
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
25
|
_public_jwk_cache: Optional[jwk.JWK] = None
|
|
33
26
|
|
|
34
27
|
|
|
35
|
-
|
|
36
28
|
def get_jwks() -> Dict[str, Any]:
|
|
37
29
|
"""
|
|
38
30
|
Get JSON Web Key Set (JWKS) for JWT verification.
|
|
@@ -53,17 +45,15 @@ def get_jwks() -> Dict[str, Any]:
|
|
|
53
45
|
key_path = oxi_settings.jwt_verifying_key
|
|
54
46
|
|
|
55
47
|
if not os.path.exists(key_path):
|
|
56
|
-
raise ImproperlyConfigured(
|
|
57
|
-
f"JWT verifying key file not found at: {key_path}"
|
|
58
|
-
)
|
|
48
|
+
raise ImproperlyConfigured(f"JWT verifying key file not found at: {key_path}")
|
|
59
49
|
|
|
60
50
|
if _public_jwk_cache is None:
|
|
61
51
|
try:
|
|
62
|
-
with open(key_path,
|
|
52
|
+
with open(key_path, "r") as f:
|
|
63
53
|
key_data = f.read()
|
|
64
54
|
|
|
65
|
-
_public_jwk_cache = jwk.JWK.from_pem(key_data.encode(
|
|
66
|
-
_public_jwk_cache.update(kid=
|
|
55
|
+
_public_jwk_cache = jwk.JWK.from_pem(key_data.encode("utf-8"))
|
|
56
|
+
_public_jwk_cache.update(kid="main")
|
|
67
57
|
except Exception as e:
|
|
68
58
|
raise ImproperlyConfigured(
|
|
69
59
|
f"Failed to load JWT verifying key from {key_path}: {str(e)}"
|
|
@@ -123,7 +113,6 @@ def authenticate_by_x_session_token(token: str) -> Optional[Tuple]:
|
|
|
123
113
|
"""
|
|
124
114
|
from allauth.headless import app_settings
|
|
125
115
|
|
|
126
|
-
|
|
127
116
|
session = app_settings.TOKEN_STRATEGY.lookup_session(token)
|
|
128
117
|
if not session:
|
|
129
118
|
return None
|
|
@@ -177,7 +166,6 @@ class BasicAuth(HttpBasicAuth):
|
|
|
177
166
|
|
|
178
167
|
class BasicNoPasswordAuth(HttpBasicAuth):
|
|
179
168
|
def authenticate(self, request: HttpRequest, username: str, password: str) -> Optional[Any]:
|
|
180
|
-
|
|
181
169
|
# check if the middleware have already authenticated the user
|
|
182
170
|
if request.user.is_authenticated:
|
|
183
171
|
return request.user
|
|
@@ -220,8 +208,6 @@ jwt_passive_auth = JWTPassiveAuth()
|
|
|
220
208
|
jwt_cookie_passive_auth = JWTCookiePassiveAuth()
|
|
221
209
|
|
|
222
210
|
|
|
223
|
-
|
|
224
|
-
|
|
225
211
|
def get_auth_handlers(auths: List[AuthBase] = []) -> List[AuthBase]:
|
|
226
212
|
"""Auth handler switcher based on settings.DEBUG"""
|
|
227
213
|
from django.conf import settings
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/management/commands/grant_tenant_owners.py
RENAMED
|
File without changes
|
{oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/oxiliere/management/commands/init_oxiliere_system.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/templates/email/password/reset_email_message.html
RENAMED
|
File without changes
|
{oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/templates/email/password/reset_email_message.txt
RENAMED
|
File without changes
|
{oxutils-0.3.1 → oxutils-0.3.2}/src/oxutils/templates/email/password/reset_email_subject.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|