django-pfx 1.4.dev40__tar.gz → 1.4.dev42__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.4.dev40 → django_pfx-1.4.dev42}/PKG-INFO +1 -1
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/django_pfx.egg-info/PKG-INFO +1 -1
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.po +6 -6
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/models/login_ban.py +3 -1
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_auth_api.py +18 -2
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/.gitignore +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/.gitlab-ci.yml +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/.pre-commit-config.yaml +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/LICENSE +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/MANIFEST.in +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/README.md +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/django_pfx.egg-info/SOURCES.txt +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/django_pfx.egg-info/dependency_links.txt +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/django_pfx.egg-info/requires.txt +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/django_pfx.egg-info/top_level.txt +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/Makefile +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/conf.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/index.rst +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/source/api.views.rst +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/source/authentication.md +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/source/decorator.md +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/source/generate_openapi.md +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/source/getting_started.md +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/source/internationalisation.md +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/source/model.md +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/source/pfx_views.md +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/source/profiling.md +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/source/settings.md +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/doc/source/testing.md +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/img/pfx.png +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/img/pfx.svg +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/make_messages +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/manage.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/apidoc/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/apidoc/parameters.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/apidoc/schema.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/apidoc/tags.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/apps.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/decorator/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/decorator/rest.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/default_settings.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/exceptions.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/fields.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/http/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/http/json_response.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.mo +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/management/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/management/commands/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/management/commands/makeapidoc.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/management/commands/profile.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/middleware/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/middleware/authentication.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/middleware/locale.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/middleware/profiling.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/models/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/models/abstract_pfx_base_user.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/models/cache_mixins.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/models/not_null_fields.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/models/otp_user_mixin.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/models/pfx_models.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/models/pfx_user.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/models/user_filtered_queryset_mixin.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/serializers/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/serializers/json.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/settings.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/shortcuts.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/storage/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/storage/s3_storage.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/templates/registration/otp_code_email.txt +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/templates/registration/otp_code_subject.txt +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/templates/registration/password_reset_email.txt +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/templates/registration/password_reset_subject.txt +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/templates/registration/welcome_email.txt +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/templates/registration/welcome_subject.txt +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/test.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/urls.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/authentication_views.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/fields.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/filters_views.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/locale_views.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/date_format.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/groups.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/list_count.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/list_items.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/list_mode.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/list_order.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/list_search.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/media_redirect.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/meta_fields.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/meta_filters.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/meta_orders.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/subset.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/subset_limit.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/subset_offset.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/subset_page.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/subset_page_size.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/subset_page_subset.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/rest_views.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/settings/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/settings/dev.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pyproject.toml +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/requirements.txt +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/serve-doc +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/setup.cfg +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/setup.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/locale/fr/LC_MESSAGES/django.po +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/models.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/settings/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/settings/ci.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/settings/common.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/settings/dev.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/settings/dev_custom_example.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/settings/dev_default.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/__init__.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/basic_api_errors.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/basic_api_test.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_api_doc.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_body_mixin.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_cache.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_client.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_fields.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_filters.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_locale_api.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_perm_tests.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_perms_api.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_profiling_middleware.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_settings.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_shortcuts.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_timezone_middleware.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_tools.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_user_queryset.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_view_decorators.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/tests/test_view_fields.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/urls.py +0 -0
- {django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/tests/views.py +0 -0
|
@@ -7,7 +7,7 @@ msgid ""
|
|
|
7
7
|
msgstr ""
|
|
8
8
|
"Project-Id-Version: \n"
|
|
9
9
|
"Report-Msgid-Bugs-To: \n"
|
|
10
|
-
"POT-Creation-Date: 2024-04-
|
|
10
|
+
"POT-Creation-Date: 2024-04-22 11:49+0200\n"
|
|
11
11
|
"PO-Revision-Date: 2021-06-22 23:31+0200\n"
|
|
12
12
|
"Last-Translator: \n"
|
|
13
13
|
"Language-Team: \n"
|
|
@@ -59,23 +59,23 @@ msgstr ""
|
|
|
59
59
|
"Format non valide, il peut s’agir d’un nombre en heures, « 1:05 », « :05 », "
|
|
60
60
|
"« 1h 5m », « 1.5h » ou « 30m »."
|
|
61
61
|
|
|
62
|
-
#: models/login_ban.py:
|
|
62
|
+
#: models/login_ban.py:45
|
|
63
63
|
msgid "Username"
|
|
64
64
|
msgstr "Nom d’utilisateur"
|
|
65
65
|
|
|
66
|
-
#: models/login_ban.py:
|
|
66
|
+
#: models/login_ban.py:46
|
|
67
67
|
msgid "Failed counter"
|
|
68
68
|
msgstr "Compteur d’échec"
|
|
69
69
|
|
|
70
|
-
#: models/login_ban.py:
|
|
70
|
+
#: models/login_ban.py:47
|
|
71
71
|
msgid "Last failed"
|
|
72
72
|
msgstr "Dernier échec"
|
|
73
73
|
|
|
74
|
-
#: models/login_ban.py:
|
|
74
|
+
#: models/login_ban.py:52
|
|
75
75
|
msgid "Login ban"
|
|
76
76
|
msgstr "Login banni"
|
|
77
77
|
|
|
78
|
-
#: models/login_ban.py:
|
|
78
|
+
#: models/login_ban.py:53
|
|
79
79
|
msgid "Login bans"
|
|
80
80
|
msgstr "Login bannis"
|
|
81
81
|
|
|
@@ -17,7 +17,9 @@ class LoginBanQuerySet(models.QuerySet):
|
|
|
17
17
|
return False
|
|
18
18
|
if ban.failed_counter % settings.PFX_LOGIN_BAN_FAILED_NUMBER == 0:
|
|
19
19
|
seconds = settings.PFX_LOGIN_BAN_SECONDS_START + (
|
|
20
|
-
settings.PFX_LOGIN_BAN_SECONDS_STEP * (
|
|
20
|
+
settings.PFX_LOGIN_BAN_SECONDS_STEP * (
|
|
21
|
+
ban.failed_counter //
|
|
22
|
+
settings.PFX_LOGIN_BAN_FAILED_NUMBER - 1))
|
|
21
23
|
ban_time = ban.last_failed + timedelta(seconds=seconds)
|
|
22
24
|
now = timezone.now()
|
|
23
25
|
if now < ban_time:
|
|
@@ -88,7 +88,7 @@ class AuthAPITest(TestAssertMixin, TransactionTestCase):
|
|
|
88
88
|
|
|
89
89
|
@override_settings(
|
|
90
90
|
PFX_TOKEN_SHORT_VALIDITY={'minutes': 30},
|
|
91
|
-
PFX_LOGIN_BAN_FAILED_NUMBER=
|
|
91
|
+
PFX_LOGIN_BAN_FAILED_NUMBER=2,
|
|
92
92
|
PFX_LOGIN_BAN_SECONDS_START=30,
|
|
93
93
|
PFX_LOGIN_BAN_SECONDS_STEP=60)
|
|
94
94
|
def test_login_ban(self):
|
|
@@ -98,6 +98,11 @@ class AuthAPITest(TestAssertMixin, TransactionTestCase):
|
|
|
98
98
|
'username': 'jrr.tolkien',
|
|
99
99
|
'password': 'BAD PASSWORD'})
|
|
100
100
|
self.assertRC(response, 422)
|
|
101
|
+
response = self.client.post(
|
|
102
|
+
'/api/auth/login', {
|
|
103
|
+
'username': 'jrr.tolkien',
|
|
104
|
+
'password': 'BAD PASSWORD'})
|
|
105
|
+
self.assertRC(response, 422)
|
|
101
106
|
|
|
102
107
|
response = self.client.post(
|
|
103
108
|
'/api/auth/login', {
|
|
@@ -128,6 +133,11 @@ class AuthAPITest(TestAssertMixin, TransactionTestCase):
|
|
|
128
133
|
'username': 'jrr.tolkien',
|
|
129
134
|
'password': 'BAD PASSWORD'})
|
|
130
135
|
self.assertRC(response, 422)
|
|
136
|
+
response = self.client.post(
|
|
137
|
+
'/api/auth/login', {
|
|
138
|
+
'username': 'jrr.tolkien',
|
|
139
|
+
'password': 'BAD PASSWORD'})
|
|
140
|
+
self.assertRC(response, 422)
|
|
131
141
|
|
|
132
142
|
response = self.client.post(
|
|
133
143
|
'/api/auth/login', {
|
|
@@ -1072,7 +1082,7 @@ class AuthAPITest(TestAssertMixin, TransactionTestCase):
|
|
|
1072
1082
|
|
|
1073
1083
|
@override_settings(
|
|
1074
1084
|
PFX_TOKEN_SHORT_VALIDITY={'minutes': 30},
|
|
1075
|
-
PFX_LOGIN_BAN_FAILED_NUMBER=
|
|
1085
|
+
PFX_LOGIN_BAN_FAILED_NUMBER=2,
|
|
1076
1086
|
PFX_LOGIN_BAN_SECONDS_START=30,
|
|
1077
1087
|
PFX_LOGIN_BAN_SECONDS_STEP=60)
|
|
1078
1088
|
def test_otp_login_ban(self):
|
|
@@ -1085,6 +1095,9 @@ class AuthAPITest(TestAssertMixin, TransactionTestCase):
|
|
|
1085
1095
|
self.assertRC(response, 200)
|
|
1086
1096
|
token = self.get_val(response, 'token')
|
|
1087
1097
|
|
|
1098
|
+
response = self.client.post('/api/auth/otp/login', dict(
|
|
1099
|
+
token=token, otp_code='-'))
|
|
1100
|
+
self.assertRC(response, 422)
|
|
1088
1101
|
response = self.client.post('/api/auth/otp/login', dict(
|
|
1089
1102
|
token=token, otp_code='-'))
|
|
1090
1103
|
self.assertRC(response, 422)
|
|
@@ -1112,6 +1125,9 @@ class AuthAPITest(TestAssertMixin, TransactionTestCase):
|
|
|
1112
1125
|
response = self.client.post('/api/auth/otp/login', dict(
|
|
1113
1126
|
token=token, otp_code='-'))
|
|
1114
1127
|
self.assertRC(response, 422)
|
|
1128
|
+
response = self.client.post('/api/auth/otp/login', dict(
|
|
1129
|
+
token=token, otp_code='-'))
|
|
1130
|
+
self.assertRC(response, 422)
|
|
1115
1131
|
|
|
1116
1132
|
response = self.client.post('/api/auth/otp/login', dict(
|
|
1117
1133
|
token=token, otp_code='-'))
|
|
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
|
{django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/models/user_filtered_queryset_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/templates/registration/otp_code_email.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/templates/registration/welcome_email.txt
RENAMED
|
File without changes
|
{django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/templates/registration/welcome_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
|
{django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/media_redirect.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
|
{django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/subset_page_size.py
RENAMED
|
File without changes
|
{django_pfx-1.4.dev40 → django_pfx-1.4.dev42}/pfx/pfxcore/views/parameters/subset_page_subset.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
|