django-pfx 1.7.3.dev24__tar.gz → 1.7.3.dev33__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.
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/PKG-INFO +2 -2
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/django_pfx.egg-info/PKG-INFO +2 -2
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/django_pfx.egg-info/SOURCES.txt +17 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/django_pfx.egg-info/requires.txt +1 -1
- django_pfx-1.7.3.dev33/django_pfx.egg-info/scm_file_list.json +275 -0
- django_pfx-1.7.3.dev33/django_pfx.egg-info/scm_version.json +8 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/source/api.views.rst +17 -4
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/source/authentication.md +167 -45
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/default_settings.py +4 -1
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/exceptions.py +4 -5
- django_pfx-1.7.3.dev33/pfx/pfxcore/locale/fr/LC_MESSAGES/django.mo +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.po +136 -97
- django_pfx-1.7.3.dev33/pfx/pfxcore/mfa/__init__.py +61 -0
- django_pfx-1.7.3.dev33/pfx/pfxcore/mfa/authenticator.py +35 -0
- django_pfx-1.7.3.dev33/pfx/pfxcore/mfa/base.py +75 -0
- django_pfx-1.7.3.dev33/pfx/pfxcore/mfa/email.py +94 -0
- django_pfx-1.7.3.dev33/pfx/pfxcore/mfa/legacy.py +89 -0
- django_pfx-1.7.3.dev33/pfx/pfxcore/mfa/sms.py +50 -0
- django_pfx-1.7.3.dev33/pfx/pfxcore/migrations/0005_mfadevice_mfadevice_mfa_device_unique_backend.py +40 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/models/__init__.py +2 -1
- django_pfx-1.7.3.dev33/pfx/pfxcore/models/mfa_device.py +96 -0
- django_pfx-1.7.3.dev33/pfx/pfxcore/models/mfa_user_mixin.py +117 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/urls.py +1 -2
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/__init__.py +1 -1
- django_pfx-1.7.3.dev33/pfx/pfxcore/views/authentication_views.py +634 -0
- django_pfx-1.7.3.dev33/pfx/pfxcore/views/mfa_authentication_views.py +523 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/requirements.txt +1 -1
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/setup.cfg +1 -1
- django_pfx-1.7.3.dev33/tests/mfa_urls.py +41 -0
- django_pfx-1.7.3.dev33/tests/migrations/0008_remove_user_hotp_count_remove_user_hotp_expiry_and_more.py +55 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/models.py +2 -2
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/__init__.py +4 -1
- django_pfx-1.7.3.dev33/tests/tests/mfa_test_utils.py +64 -0
- django_pfx-1.7.3.dev33/tests/tests/test_auth_api.py +931 -0
- django_pfx-1.7.3.dev33/tests/tests/test_mfa_legacy.py +112 -0
- django_pfx-1.7.3.dev33/tests/tests/test_mfa_login_api.py +455 -0
- django_pfx-1.7.3.dev33/tests/tests/test_mfa_setup_api.py +534 -0
- django_pfx-1.7.3.dev24/pfx/pfxcore/locale/fr/LC_MESSAGES/django.mo +0 -0
- django_pfx-1.7.3.dev24/pfx/pfxcore/models/mfa_user_mixin.py +0 -293
- django_pfx-1.7.3.dev24/pfx/pfxcore/views/authentication_views.py +0 -1414
- django_pfx-1.7.3.dev24/tests/tests/test_auth_api.py +0 -2035
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/.gitignore +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/.gitlab-ci.yml +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/.pre-commit-config.yaml +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/LICENSE +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/MANIFEST.in +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/README.md +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/django_pfx.egg-info/dependency_links.txt +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/django_pfx.egg-info/top_level.txt +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/Makefile +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/conf.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/index.rst +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/source/decorator.md +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/source/generate_openapi.md +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/source/getting_started.md +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/source/internationalisation.md +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/source/model.md +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/source/pfx_views.md +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/source/profiling.md +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/source/settings.md +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/doc/source/testing.md +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/img/pfx.png +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/img/pfx.svg +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/make_messages +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/manage.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/apps.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/email_backend/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/email_backend/q_mailjet_email_backend.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/exceptions.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/mailjet/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/mailjet/mailjet.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/mailjet/message_result.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/migrations/0001_initial.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/migrations/0002_alter_email_headers.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/migrations/0003_alter_email_options.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/migrations/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/models/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/models/email.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/providers/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/providers/email_django_q_executor.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/shortcuts.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/tasks.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/templates/emails/base_template.html +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/templates/emails/base_template.txt +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/templates/emails/base_template_subject.txt +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/urls.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/views/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/emails/views/email_rest_view.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/apidoc/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/apidoc/parameters.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/apidoc/schema.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/apidoc/tags.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/apps.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/decorator/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/decorator/rest.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/fields/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/fields/decimal_field.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/fields/media_field.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/fields/minutes_duration_field.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/fields/rich_text_field.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/http/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/http/json_response.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/management/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/management/commands/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/management/commands/makeapidoc.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/management/commands/profile.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/middleware/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/middleware/authentication.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/middleware/locale.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/middleware/profiling.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/middleware/request_too_big_middleware.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/middleware/ws_cookie_authentication_middleware.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/migrations/0001_initial.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/migrations/0002_pfxpermissionsuser.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/migrations/0003_delete_pfxpermissionsuser.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/migrations/0004_alter_loginban_failed_counter_and_more.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/migrations/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/migrations/operations/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/migrations/operations/permissions.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/models/abstract_pfx_base_user.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/models/attachment_mixin.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/models/cache_mixins.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/models/login_ban.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/models/not_null_fields.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/models/ordered_model_mixin.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/models/pfx_models.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/models/pfx_user.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/models/user_filtered_queryset_mixin.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/serializers/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/serializers/json.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/settings.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/shortcuts.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/sms/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/sms/backends/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/sms/backends/base.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/sms/backends/console.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/storage/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/storage/exceptions.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/storage/local_storage.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/storage/s3_storage.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/templates/registration/otp_code_email.txt +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/templates/registration/otp_code_subject.txt +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/templates/registration/password_reset_email.txt +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/templates/registration/password_reset_subject.txt +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/templates/registration/welcome_email.txt +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/templates/registration/welcome_subject.txt +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/test.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/fields.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/filters_views.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/locale_views.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/media_rest_view_mixin.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/ordered_rest_view_mixin.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/date_format.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/groups.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/list_count.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/list_items.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/list_mode.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/list_order.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/list_search.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/media_redirect.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/meta_fields.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/meta_filters.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/meta_orders.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/subset.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/subset_limit.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/subset_offset.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/subset_page.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/subset_page_size.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/parameters/subset_page_subset.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/pfxcore/views/rest_views.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/settings/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/settings/dev.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/apps.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/locale/fr/LC_MESSAGES/django.mo +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/locale/fr/LC_MESSAGES/django.po +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/migrations/0001_initial.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/migrations/0002_alter_userjob_options_alter_userjob_auto_queued_and_more.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/migrations/0003_clean_scheduled_tasks.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/migrations/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/models/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/models/user_job.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/models/user_job_attachment.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/providers/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/providers/user_job_django_q_executor.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/providers/user_job_websocket_channel_provider.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/tasks.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/urls.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/views/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/views/user_job_attachment_view.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/views/user_job_view.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pfx/userjobs/views/user_websocket_consumer.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/pyproject.toml +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/serve-doc +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/setup.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/apps.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/channel_group_send_calls.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/locale/fr/LC_MESSAGES/django.po +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/migrations/0001_initial.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/migrations/0002_alter_book_cover.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/migrations/0003_book_local_file.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/migrations/0004_mfausermixin_fields.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/migrations/0005_mfausermixin_fields_fix.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/migrations/0006_rename_otp_enabled_user_mfa_authenticator_enabled_and_more.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/migrations/0007_attachment.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/migrations/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/settings/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/settings/ci.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/settings/common.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/settings/dev.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/settings/dev_custom_example.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/settings/dev_default.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/basic_api_errors.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/basic_api_test.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_api_doc.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_api_doc_search.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_body_mixin.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_cache.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_client.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_emails_email_api.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_emails_email_model.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_emails_q_mailjet_email_backend.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_emails_send_email_message.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_fields_choices.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_fields_date.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_fields_decimal.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_fields_minutes_duration.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_fields_one2many.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_fields_rich_text.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_fields_time.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_filters.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_locale_api.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_ordered_rest_view_mixin.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_perm_tests.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_permissions.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_perms_api.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_post_migrate_groups_update.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_profiling_middleware.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_settings.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_shortcuts.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_timezone_middleware.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_tools.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_user_job_api.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_user_job_messages.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_user_job_model.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_user_queryset.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_user_websocket.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_view_decorators.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/tests/test_view_fields.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/urls.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests/views.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/migrations/0001_initial.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/migrations/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/settings/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/settings/ci.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/settings/common.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/settings/dev.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/settings/dev_custom_example.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/settings/dev_default.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/tests/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/tests/test_api.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/tests/test_auth_api.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/urls.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_base_user/views.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/migrations/0001_initial.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/migrations/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/models.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/settings/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/settings/ci.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/settings/common.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/settings/dev.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/settings/dev_custom_example.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/settings/dev_default.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/tests/__init__.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/tests/test_api.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/tests/test_auth_api.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/urls.py +0 -0
- {django_pfx-1.7.3.dev24 → django_pfx-1.7.3.dev33}/tests_custom_user/views.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-pfx
|
|
3
|
-
Version: 1.7.3.
|
|
3
|
+
Version: 1.7.3.dev33
|
|
4
4
|
Summary: Django PFX is a toolkit designed to streamline the development of RESTful APIs using the Django framework.
|
|
5
5
|
Author: Hervé Martinet
|
|
6
6
|
Author-email: herve.martinet@gmail.com
|
|
@@ -36,7 +36,7 @@ Requires-Dist: pytz
|
|
|
36
36
|
Requires-Dist: dill
|
|
37
37
|
Requires-Dist: nh3
|
|
38
38
|
Provides-Extra: otp
|
|
39
|
-
Requires-Dist: pyotp; extra == "otp"
|
|
39
|
+
Requires-Dist: pyotp>=2.10.0; extra == "otp"
|
|
40
40
|
Provides-Extra: heic-converter
|
|
41
41
|
Requires-Dist: python-magic; extra == "heic-converter"
|
|
42
42
|
Requires-Dist: pillow-heif; extra == "heic-converter"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-pfx
|
|
3
|
-
Version: 1.7.3.
|
|
3
|
+
Version: 1.7.3.dev33
|
|
4
4
|
Summary: Django PFX is a toolkit designed to streamline the development of RESTful APIs using the Django framework.
|
|
5
5
|
Author: Hervé Martinet
|
|
6
6
|
Author-email: herve.martinet@gmail.com
|
|
@@ -36,7 +36,7 @@ Requires-Dist: pytz
|
|
|
36
36
|
Requires-Dist: dill
|
|
37
37
|
Requires-Dist: nh3
|
|
38
38
|
Provides-Extra: otp
|
|
39
|
-
Requires-Dist: pyotp; extra == "otp"
|
|
39
|
+
Requires-Dist: pyotp>=2.10.0; extra == "otp"
|
|
40
40
|
Provides-Extra: heic-converter
|
|
41
41
|
Requires-Dist: python-magic; extra == "heic-converter"
|
|
42
42
|
Requires-Dist: pillow-heif; extra == "heic-converter"
|
|
@@ -15,6 +15,8 @@ django_pfx.egg-info/PKG-INFO
|
|
|
15
15
|
django_pfx.egg-info/SOURCES.txt
|
|
16
16
|
django_pfx.egg-info/dependency_links.txt
|
|
17
17
|
django_pfx.egg-info/requires.txt
|
|
18
|
+
django_pfx.egg-info/scm_file_list.json
|
|
19
|
+
django_pfx.egg-info/scm_version.json
|
|
18
20
|
django_pfx.egg-info/top_level.txt
|
|
19
21
|
doc/Makefile
|
|
20
22
|
doc/conf.py
|
|
@@ -84,6 +86,12 @@ pfx/pfxcore/management/__init__.py
|
|
|
84
86
|
pfx/pfxcore/management/commands/__init__.py
|
|
85
87
|
pfx/pfxcore/management/commands/makeapidoc.py
|
|
86
88
|
pfx/pfxcore/management/commands/profile.py
|
|
89
|
+
pfx/pfxcore/mfa/__init__.py
|
|
90
|
+
pfx/pfxcore/mfa/authenticator.py
|
|
91
|
+
pfx/pfxcore/mfa/base.py
|
|
92
|
+
pfx/pfxcore/mfa/email.py
|
|
93
|
+
pfx/pfxcore/mfa/legacy.py
|
|
94
|
+
pfx/pfxcore/mfa/sms.py
|
|
87
95
|
pfx/pfxcore/middleware/__init__.py
|
|
88
96
|
pfx/pfxcore/middleware/authentication.py
|
|
89
97
|
pfx/pfxcore/middleware/locale.py
|
|
@@ -94,6 +102,7 @@ pfx/pfxcore/migrations/0001_initial.py
|
|
|
94
102
|
pfx/pfxcore/migrations/0002_pfxpermissionsuser.py
|
|
95
103
|
pfx/pfxcore/migrations/0003_delete_pfxpermissionsuser.py
|
|
96
104
|
pfx/pfxcore/migrations/0004_alter_loginban_failed_counter_and_more.py
|
|
105
|
+
pfx/pfxcore/migrations/0005_mfadevice_mfadevice_mfa_device_unique_backend.py
|
|
97
106
|
pfx/pfxcore/migrations/__init__.py
|
|
98
107
|
pfx/pfxcore/migrations/operations/__init__.py
|
|
99
108
|
pfx/pfxcore/migrations/operations/permissions.py
|
|
@@ -102,6 +111,7 @@ pfx/pfxcore/models/abstract_pfx_base_user.py
|
|
|
102
111
|
pfx/pfxcore/models/attachment_mixin.py
|
|
103
112
|
pfx/pfxcore/models/cache_mixins.py
|
|
104
113
|
pfx/pfxcore/models/login_ban.py
|
|
114
|
+
pfx/pfxcore/models/mfa_device.py
|
|
105
115
|
pfx/pfxcore/models/mfa_user_mixin.py
|
|
106
116
|
pfx/pfxcore/models/not_null_fields.py
|
|
107
117
|
pfx/pfxcore/models/ordered_model_mixin.py
|
|
@@ -130,6 +140,7 @@ pfx/pfxcore/views/fields.py
|
|
|
130
140
|
pfx/pfxcore/views/filters_views.py
|
|
131
141
|
pfx/pfxcore/views/locale_views.py
|
|
132
142
|
pfx/pfxcore/views/media_rest_view_mixin.py
|
|
143
|
+
pfx/pfxcore/views/mfa_authentication_views.py
|
|
133
144
|
pfx/pfxcore/views/ordered_rest_view_mixin.py
|
|
134
145
|
pfx/pfxcore/views/rest_views.py
|
|
135
146
|
pfx/pfxcore/views/parameters/__init__.py
|
|
@@ -175,6 +186,7 @@ pfx/userjobs/views/user_websocket_consumer.py
|
|
|
175
186
|
tests/__init__.py
|
|
176
187
|
tests/apps.py
|
|
177
188
|
tests/channel_group_send_calls.py
|
|
189
|
+
tests/mfa_urls.py
|
|
178
190
|
tests/models.py
|
|
179
191
|
tests/urls.py
|
|
180
192
|
tests/views.py
|
|
@@ -186,6 +198,7 @@ tests/migrations/0004_mfausermixin_fields.py
|
|
|
186
198
|
tests/migrations/0005_mfausermixin_fields_fix.py
|
|
187
199
|
tests/migrations/0006_rename_otp_enabled_user_mfa_authenticator_enabled_and_more.py
|
|
188
200
|
tests/migrations/0007_attachment.py
|
|
201
|
+
tests/migrations/0008_remove_user_hotp_count_remove_user_hotp_expiry_and_more.py
|
|
189
202
|
tests/migrations/__init__.py
|
|
190
203
|
tests/settings/__init__.py
|
|
191
204
|
tests/settings/ci.py
|
|
@@ -196,6 +209,7 @@ tests/settings/dev_default.py
|
|
|
196
209
|
tests/tests/__init__.py
|
|
197
210
|
tests/tests/basic_api_errors.py
|
|
198
211
|
tests/tests/basic_api_test.py
|
|
212
|
+
tests/tests/mfa_test_utils.py
|
|
199
213
|
tests/tests/test_api_doc.py
|
|
200
214
|
tests/tests/test_api_doc_search.py
|
|
201
215
|
tests/tests/test_auth_api.py
|
|
@@ -215,6 +229,9 @@ tests/tests/test_fields_rich_text.py
|
|
|
215
229
|
tests/tests/test_fields_time.py
|
|
216
230
|
tests/tests/test_filters.py
|
|
217
231
|
tests/tests/test_locale_api.py
|
|
232
|
+
tests/tests/test_mfa_legacy.py
|
|
233
|
+
tests/tests/test_mfa_login_api.py
|
|
234
|
+
tests/tests/test_mfa_setup_api.py
|
|
218
235
|
tests/tests/test_ordered_rest_view_mixin.py
|
|
219
236
|
tests/tests/test_perm_tests.py
|
|
220
237
|
tests/tests/test_permissions.py
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
{
|
|
2
|
+
"files": [
|
|
3
|
+
".gitignore",
|
|
4
|
+
".gitlab-ci.yml",
|
|
5
|
+
".pre-commit-config.yaml",
|
|
6
|
+
"make_messages",
|
|
7
|
+
"MANIFEST.in",
|
|
8
|
+
"manage.py",
|
|
9
|
+
"serve-doc",
|
|
10
|
+
"requirements.txt",
|
|
11
|
+
"README.md",
|
|
12
|
+
"pyproject.toml",
|
|
13
|
+
"LICENSE",
|
|
14
|
+
"setup.py",
|
|
15
|
+
"setup.cfg",
|
|
16
|
+
"tests/channel_group_send_calls.py",
|
|
17
|
+
"tests/mfa_urls.py",
|
|
18
|
+
"tests/urls.py",
|
|
19
|
+
"tests/views.py",
|
|
20
|
+
"tests/__init__.py",
|
|
21
|
+
"tests/models.py",
|
|
22
|
+
"tests/apps.py",
|
|
23
|
+
"tests/tests/test_fields_one2many.py",
|
|
24
|
+
"tests/tests/test_api_doc_search.py",
|
|
25
|
+
"tests/tests/basic_api_errors.py",
|
|
26
|
+
"tests/tests/test_fields_rich_text.py",
|
|
27
|
+
"tests/tests/test_tools.py",
|
|
28
|
+
"tests/tests/mfa_test_utils.py",
|
|
29
|
+
"tests/tests/test_fields_minutes_duration.py",
|
|
30
|
+
"tests/tests/test_body_mixin.py",
|
|
31
|
+
"tests/tests/test_auth_api.py",
|
|
32
|
+
"tests/tests/test_fields_choices.py",
|
|
33
|
+
"tests/tests/test_user_job_api.py",
|
|
34
|
+
"tests/tests/test_user_job_model.py",
|
|
35
|
+
"tests/tests/test_timezone_middleware.py",
|
|
36
|
+
"tests/tests/test_mfa_login_api.py",
|
|
37
|
+
"tests/tests/test_perm_tests.py",
|
|
38
|
+
"tests/tests/test_perms_api.py",
|
|
39
|
+
"tests/tests/test_view_decorators.py",
|
|
40
|
+
"tests/tests/test_client.py",
|
|
41
|
+
"tests/tests/test_user_websocket.py",
|
|
42
|
+
"tests/tests/test_emails_email_model.py",
|
|
43
|
+
"tests/tests/__init__.py",
|
|
44
|
+
"tests/tests/test_fields_date.py",
|
|
45
|
+
"tests/tests/test_user_job_messages.py",
|
|
46
|
+
"tests/tests/test_filters.py",
|
|
47
|
+
"tests/tests/test_permissions.py",
|
|
48
|
+
"tests/tests/test_user_queryset.py",
|
|
49
|
+
"tests/tests/test_settings.py",
|
|
50
|
+
"tests/tests/test_ordered_rest_view_mixin.py",
|
|
51
|
+
"tests/tests/test_mfa_setup_api.py",
|
|
52
|
+
"tests/tests/test_emails_email_api.py",
|
|
53
|
+
"tests/tests/test_locale_api.py",
|
|
54
|
+
"tests/tests/test_shortcuts.py",
|
|
55
|
+
"tests/tests/test_profiling_middleware.py",
|
|
56
|
+
"tests/tests/test_mfa_legacy.py",
|
|
57
|
+
"tests/tests/test_post_migrate_groups_update.py",
|
|
58
|
+
"tests/tests/test_view_fields.py",
|
|
59
|
+
"tests/tests/basic_api_test.py",
|
|
60
|
+
"tests/tests/test_fields_time.py",
|
|
61
|
+
"tests/tests/test_emails_send_email_message.py",
|
|
62
|
+
"tests/tests/test_api_doc.py",
|
|
63
|
+
"tests/tests/test_cache.py",
|
|
64
|
+
"tests/tests/test_emails_q_mailjet_email_backend.py",
|
|
65
|
+
"tests/tests/test_fields_decimal.py",
|
|
66
|
+
"tests/settings/dev.py",
|
|
67
|
+
"tests/settings/common.py",
|
|
68
|
+
"tests/settings/dev_default.py",
|
|
69
|
+
"tests/settings/__init__.py",
|
|
70
|
+
"tests/settings/dev_custom_example.py",
|
|
71
|
+
"tests/settings/ci.py",
|
|
72
|
+
"tests/migrations/0004_mfausermixin_fields.py",
|
|
73
|
+
"tests/migrations/0006_rename_otp_enabled_user_mfa_authenticator_enabled_and_more.py",
|
|
74
|
+
"tests/migrations/0008_remove_user_hotp_count_remove_user_hotp_expiry_and_more.py",
|
|
75
|
+
"tests/migrations/__init__.py",
|
|
76
|
+
"tests/migrations/0002_alter_book_cover.py",
|
|
77
|
+
"tests/migrations/0001_initial.py",
|
|
78
|
+
"tests/migrations/0007_attachment.py",
|
|
79
|
+
"tests/migrations/0005_mfausermixin_fields_fix.py",
|
|
80
|
+
"tests/migrations/0003_book_local_file.py",
|
|
81
|
+
"tests/locale/fr/LC_MESSAGES/django.po",
|
|
82
|
+
"doc/conf.py",
|
|
83
|
+
"doc/index.rst",
|
|
84
|
+
"doc/Makefile",
|
|
85
|
+
"doc/source/authentication.md",
|
|
86
|
+
"doc/source/generate_openapi.md",
|
|
87
|
+
"doc/source/api.views.rst",
|
|
88
|
+
"doc/source/decorator.md",
|
|
89
|
+
"doc/source/settings.md",
|
|
90
|
+
"doc/source/testing.md",
|
|
91
|
+
"doc/source/profiling.md",
|
|
92
|
+
"doc/source/getting_started.md",
|
|
93
|
+
"doc/source/pfx_views.md",
|
|
94
|
+
"doc/source/internationalisation.md",
|
|
95
|
+
"doc/source/model.md",
|
|
96
|
+
"img/pfx.svg",
|
|
97
|
+
"img/pfx.png",
|
|
98
|
+
"pfx/__init__.py",
|
|
99
|
+
"pfx/pfxcore/test.py",
|
|
100
|
+
"pfx/pfxcore/exceptions.py",
|
|
101
|
+
"pfx/pfxcore/urls.py",
|
|
102
|
+
"pfx/pfxcore/__init__.py",
|
|
103
|
+
"pfx/pfxcore/default_settings.py",
|
|
104
|
+
"pfx/pfxcore/settings.py",
|
|
105
|
+
"pfx/pfxcore/apps.py",
|
|
106
|
+
"pfx/pfxcore/shortcuts.py",
|
|
107
|
+
"pfx/pfxcore/decorator/rest.py",
|
|
108
|
+
"pfx/pfxcore/decorator/__init__.py",
|
|
109
|
+
"pfx/pfxcore/models/mfa_device.py",
|
|
110
|
+
"pfx/pfxcore/models/ordered_model_mixin.py",
|
|
111
|
+
"pfx/pfxcore/models/pfx_models.py",
|
|
112
|
+
"pfx/pfxcore/models/mfa_user_mixin.py",
|
|
113
|
+
"pfx/pfxcore/models/user_filtered_queryset_mixin.py",
|
|
114
|
+
"pfx/pfxcore/models/__init__.py",
|
|
115
|
+
"pfx/pfxcore/models/pfx_user.py",
|
|
116
|
+
"pfx/pfxcore/models/login_ban.py",
|
|
117
|
+
"pfx/pfxcore/models/attachment_mixin.py",
|
|
118
|
+
"pfx/pfxcore/models/cache_mixins.py",
|
|
119
|
+
"pfx/pfxcore/models/abstract_pfx_base_user.py",
|
|
120
|
+
"pfx/pfxcore/models/not_null_fields.py",
|
|
121
|
+
"pfx/pfxcore/middleware/ws_cookie_authentication_middleware.py",
|
|
122
|
+
"pfx/pfxcore/middleware/authentication.py",
|
|
123
|
+
"pfx/pfxcore/middleware/locale.py",
|
|
124
|
+
"pfx/pfxcore/middleware/__init__.py",
|
|
125
|
+
"pfx/pfxcore/middleware/profiling.py",
|
|
126
|
+
"pfx/pfxcore/middleware/request_too_big_middleware.py",
|
|
127
|
+
"pfx/pfxcore/views/authentication_views.py",
|
|
128
|
+
"pfx/pfxcore/views/mfa_authentication_views.py",
|
|
129
|
+
"pfx/pfxcore/views/filters_views.py",
|
|
130
|
+
"pfx/pfxcore/views/media_rest_view_mixin.py",
|
|
131
|
+
"pfx/pfxcore/views/locale_views.py",
|
|
132
|
+
"pfx/pfxcore/views/rest_views.py",
|
|
133
|
+
"pfx/pfxcore/views/ordered_rest_view_mixin.py",
|
|
134
|
+
"pfx/pfxcore/views/__init__.py",
|
|
135
|
+
"pfx/pfxcore/views/fields.py",
|
|
136
|
+
"pfx/pfxcore/views/parameters/subset_page_subset.py",
|
|
137
|
+
"pfx/pfxcore/views/parameters/meta_fields.py",
|
|
138
|
+
"pfx/pfxcore/views/parameters/list_mode.py",
|
|
139
|
+
"pfx/pfxcore/views/parameters/list_count.py",
|
|
140
|
+
"pfx/pfxcore/views/parameters/media_redirect.py",
|
|
141
|
+
"pfx/pfxcore/views/parameters/meta_orders.py",
|
|
142
|
+
"pfx/pfxcore/views/parameters/date_format.py",
|
|
143
|
+
"pfx/pfxcore/views/parameters/subset_limit.py",
|
|
144
|
+
"pfx/pfxcore/views/parameters/list_search.py",
|
|
145
|
+
"pfx/pfxcore/views/parameters/subset_page_size.py",
|
|
146
|
+
"pfx/pfxcore/views/parameters/__init__.py",
|
|
147
|
+
"pfx/pfxcore/views/parameters/subset_page.py",
|
|
148
|
+
"pfx/pfxcore/views/parameters/list_items.py",
|
|
149
|
+
"pfx/pfxcore/views/parameters/list_order.py",
|
|
150
|
+
"pfx/pfxcore/views/parameters/subset_offset.py",
|
|
151
|
+
"pfx/pfxcore/views/parameters/groups.py",
|
|
152
|
+
"pfx/pfxcore/views/parameters/meta_filters.py",
|
|
153
|
+
"pfx/pfxcore/views/parameters/subset.py",
|
|
154
|
+
"pfx/pfxcore/serializers/__init__.py",
|
|
155
|
+
"pfx/pfxcore/serializers/json.py",
|
|
156
|
+
"pfx/pfxcore/mfa/authenticator.py",
|
|
157
|
+
"pfx/pfxcore/mfa/base.py",
|
|
158
|
+
"pfx/pfxcore/mfa/sms.py",
|
|
159
|
+
"pfx/pfxcore/mfa/__init__.py",
|
|
160
|
+
"pfx/pfxcore/mfa/email.py",
|
|
161
|
+
"pfx/pfxcore/mfa/legacy.py",
|
|
162
|
+
"pfx/pfxcore/templates/registration/password_reset_email.txt",
|
|
163
|
+
"pfx/pfxcore/templates/registration/password_reset_subject.txt",
|
|
164
|
+
"pfx/pfxcore/templates/registration/welcome_email.txt",
|
|
165
|
+
"pfx/pfxcore/templates/registration/welcome_subject.txt",
|
|
166
|
+
"pfx/pfxcore/templates/registration/otp_code_subject.txt",
|
|
167
|
+
"pfx/pfxcore/templates/registration/otp_code_email.txt",
|
|
168
|
+
"pfx/pfxcore/migrations/0003_delete_pfxpermissionsuser.py",
|
|
169
|
+
"pfx/pfxcore/migrations/__init__.py",
|
|
170
|
+
"pfx/pfxcore/migrations/0005_mfadevice_mfadevice_mfa_device_unique_backend.py",
|
|
171
|
+
"pfx/pfxcore/migrations/0001_initial.py",
|
|
172
|
+
"pfx/pfxcore/migrations/0004_alter_loginban_failed_counter_and_more.py",
|
|
173
|
+
"pfx/pfxcore/migrations/0002_pfxpermissionsuser.py",
|
|
174
|
+
"pfx/pfxcore/migrations/operations/permissions.py",
|
|
175
|
+
"pfx/pfxcore/migrations/operations/__init__.py",
|
|
176
|
+
"pfx/pfxcore/apidoc/schema.py",
|
|
177
|
+
"pfx/pfxcore/apidoc/tags.py",
|
|
178
|
+
"pfx/pfxcore/apidoc/__init__.py",
|
|
179
|
+
"pfx/pfxcore/apidoc/parameters.py",
|
|
180
|
+
"pfx/pfxcore/storage/exceptions.py",
|
|
181
|
+
"pfx/pfxcore/storage/local_storage.py",
|
|
182
|
+
"pfx/pfxcore/storage/__init__.py",
|
|
183
|
+
"pfx/pfxcore/storage/s3_storage.py",
|
|
184
|
+
"pfx/pfxcore/fields/minutes_duration_field.py",
|
|
185
|
+
"pfx/pfxcore/fields/rich_text_field.py",
|
|
186
|
+
"pfx/pfxcore/fields/media_field.py",
|
|
187
|
+
"pfx/pfxcore/fields/__init__.py",
|
|
188
|
+
"pfx/pfxcore/fields/decimal_field.py",
|
|
189
|
+
"pfx/pfxcore/http/__init__.py",
|
|
190
|
+
"pfx/pfxcore/http/json_response.py",
|
|
191
|
+
"pfx/pfxcore/locale/fr/LC_MESSAGES/django.po",
|
|
192
|
+
"pfx/pfxcore/sms/__init__.py",
|
|
193
|
+
"pfx/pfxcore/sms/backends/base.py",
|
|
194
|
+
"pfx/pfxcore/sms/backends/__init__.py",
|
|
195
|
+
"pfx/pfxcore/sms/backends/console.py",
|
|
196
|
+
"pfx/pfxcore/management/__init__.py",
|
|
197
|
+
"pfx/pfxcore/management/commands/__init__.py",
|
|
198
|
+
"pfx/pfxcore/management/commands/makeapidoc.py",
|
|
199
|
+
"pfx/pfxcore/management/commands/profile.py",
|
|
200
|
+
"pfx/userjobs/urls.py",
|
|
201
|
+
"pfx/userjobs/tasks.py",
|
|
202
|
+
"pfx/userjobs/__init__.py",
|
|
203
|
+
"pfx/userjobs/apps.py",
|
|
204
|
+
"pfx/userjobs/models/__init__.py",
|
|
205
|
+
"pfx/userjobs/models/user_job_attachment.py",
|
|
206
|
+
"pfx/userjobs/models/user_job.py",
|
|
207
|
+
"pfx/userjobs/views/__init__.py",
|
|
208
|
+
"pfx/userjobs/views/user_websocket_consumer.py",
|
|
209
|
+
"pfx/userjobs/views/user_job_view.py",
|
|
210
|
+
"pfx/userjobs/views/user_job_attachment_view.py",
|
|
211
|
+
"pfx/userjobs/migrations/0002_alter_userjob_options_alter_userjob_auto_queued_and_more.py",
|
|
212
|
+
"pfx/userjobs/migrations/__init__.py",
|
|
213
|
+
"pfx/userjobs/migrations/0003_clean_scheduled_tasks.py",
|
|
214
|
+
"pfx/userjobs/migrations/0001_initial.py",
|
|
215
|
+
"pfx/userjobs/providers/__init__.py",
|
|
216
|
+
"pfx/userjobs/providers/user_job_django_q_executor.py",
|
|
217
|
+
"pfx/userjobs/providers/user_job_websocket_channel_provider.py",
|
|
218
|
+
"pfx/userjobs/locale/fr/LC_MESSAGES/django.po",
|
|
219
|
+
"pfx/settings/dev.py",
|
|
220
|
+
"pfx/settings/__init__.py",
|
|
221
|
+
"pfx/emails/exceptions.py",
|
|
222
|
+
"pfx/emails/urls.py",
|
|
223
|
+
"pfx/emails/tasks.py",
|
|
224
|
+
"pfx/emails/__init__.py",
|
|
225
|
+
"pfx/emails/apps.py",
|
|
226
|
+
"pfx/emails/shortcuts.py",
|
|
227
|
+
"pfx/emails/models/__init__.py",
|
|
228
|
+
"pfx/emails/models/email.py",
|
|
229
|
+
"pfx/emails/mailjet/__init__.py",
|
|
230
|
+
"pfx/emails/mailjet/message_result.py",
|
|
231
|
+
"pfx/emails/mailjet/mailjet.py",
|
|
232
|
+
"pfx/emails/views/__init__.py",
|
|
233
|
+
"pfx/emails/views/email_rest_view.py",
|
|
234
|
+
"pfx/emails/templates/emails/base_template.txt",
|
|
235
|
+
"pfx/emails/templates/emails/base_template_subject.txt",
|
|
236
|
+
"pfx/emails/templates/emails/base_template.html",
|
|
237
|
+
"pfx/emails/migrations/0003_alter_email_options.py",
|
|
238
|
+
"pfx/emails/migrations/0002_alter_email_headers.py",
|
|
239
|
+
"pfx/emails/migrations/__init__.py",
|
|
240
|
+
"pfx/emails/migrations/0001_initial.py",
|
|
241
|
+
"pfx/emails/providers/email_django_q_executor.py",
|
|
242
|
+
"pfx/emails/providers/__init__.py",
|
|
243
|
+
"pfx/emails/email_backend/q_mailjet_email_backend.py",
|
|
244
|
+
"pfx/emails/email_backend/__init__.py",
|
|
245
|
+
"tests_custom_user/urls.py",
|
|
246
|
+
"tests_custom_user/views.py",
|
|
247
|
+
"tests_custom_user/__init__.py",
|
|
248
|
+
"tests_custom_user/models.py",
|
|
249
|
+
"tests_custom_user/tests/test_api.py",
|
|
250
|
+
"tests_custom_user/tests/test_auth_api.py",
|
|
251
|
+
"tests_custom_user/tests/__init__.py",
|
|
252
|
+
"tests_custom_user/settings/dev.py",
|
|
253
|
+
"tests_custom_user/settings/common.py",
|
|
254
|
+
"tests_custom_user/settings/dev_default.py",
|
|
255
|
+
"tests_custom_user/settings/__init__.py",
|
|
256
|
+
"tests_custom_user/settings/dev_custom_example.py",
|
|
257
|
+
"tests_custom_user/settings/ci.py",
|
|
258
|
+
"tests_custom_user/migrations/__init__.py",
|
|
259
|
+
"tests_custom_user/migrations/0001_initial.py",
|
|
260
|
+
"tests_base_user/urls.py",
|
|
261
|
+
"tests_base_user/views.py",
|
|
262
|
+
"tests_base_user/__init__.py",
|
|
263
|
+
"tests_base_user/tests/test_api.py",
|
|
264
|
+
"tests_base_user/tests/test_auth_api.py",
|
|
265
|
+
"tests_base_user/tests/__init__.py",
|
|
266
|
+
"tests_base_user/settings/dev.py",
|
|
267
|
+
"tests_base_user/settings/common.py",
|
|
268
|
+
"tests_base_user/settings/dev_default.py",
|
|
269
|
+
"tests_base_user/settings/__init__.py",
|
|
270
|
+
"tests_base_user/settings/dev_custom_example.py",
|
|
271
|
+
"tests_base_user/settings/ci.py",
|
|
272
|
+
"tests_base_user/migrations/__init__.py",
|
|
273
|
+
"tests_base_user/migrations/0001_initial.py"
|
|
274
|
+
]
|
|
275
|
+
}
|
|
@@ -36,7 +36,11 @@ API Reference
|
|
|
36
36
|
:members:
|
|
37
37
|
:show-inheritance:
|
|
38
38
|
|
|
39
|
-
.. autoclass:: pfx.pfxcore.models.
|
|
39
|
+
.. autoclass:: pfx.pfxcore.models.MFAUserMixin
|
|
40
|
+
:members:
|
|
41
|
+
:show-inheritance:
|
|
42
|
+
|
|
43
|
+
.. autoclass:: pfx.pfxcore.models.MFADevice
|
|
40
44
|
:members:
|
|
41
45
|
:show-inheritance:
|
|
42
46
|
|
|
@@ -44,6 +48,15 @@ API Reference
|
|
|
44
48
|
:members:
|
|
45
49
|
:show-inheritance:
|
|
46
50
|
|
|
51
|
+
``pfx.pfxcore.mfa``
|
|
52
|
+
*******************
|
|
53
|
+
|
|
54
|
+
.. autoclass:: pfx.pfxcore.mfa.MFABackend
|
|
55
|
+
:members:
|
|
56
|
+
:show-inheritance:
|
|
57
|
+
|
|
58
|
+
.. autofunction:: pfx.pfxcore.mfa.legacy.port_legacy_mfa
|
|
59
|
+
|
|
47
60
|
``pfx.pfxcore.views``
|
|
48
61
|
*********************
|
|
49
62
|
|
|
@@ -138,17 +151,17 @@ Base services
|
|
|
138
151
|
:undoc-members:
|
|
139
152
|
:show-inheritance:
|
|
140
153
|
|
|
141
|
-
.. autoclass:: pfx.pfxcore.views.
|
|
154
|
+
.. autoclass:: pfx.pfxcore.views.MFAAuthenticationView
|
|
142
155
|
:members:
|
|
143
156
|
:undoc-members:
|
|
144
157
|
:show-inheritance:
|
|
145
158
|
|
|
146
|
-
.. autoclass:: pfx.pfxcore.views.
|
|
159
|
+
.. autoclass:: pfx.pfxcore.views.SignupView
|
|
147
160
|
:members:
|
|
148
161
|
:undoc-members:
|
|
149
162
|
:show-inheritance:
|
|
150
163
|
|
|
151
|
-
.. autoclass:: pfx.pfxcore.views.
|
|
164
|
+
.. autoclass:: pfx.pfxcore.views.ForgottenPasswordView
|
|
152
165
|
:members:
|
|
153
166
|
:undoc-members:
|
|
154
167
|
:show-inheritance:
|