openwisp-users 1.2.0__tar.gz → 1.2.1__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.
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/CHANGES.rst +20 -0
- {openwisp_users-1.2.0/openwisp_users.egg-info → openwisp_users-1.2.1}/PKG-INFO +2 -2
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/__init__.py +1 -1
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/adapter.py +3 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/admin.py +6 -3
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/backends.py +5 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/settings.py +9 -0
- openwisp_users-1.2.1/openwisp_users/static/openwisp-users/css/admin.css +4 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_adapter.py +13 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_backends.py +10 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1/openwisp_users.egg-info}/PKG-INFO +2 -2
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users.egg-info/requires.txt +1 -1
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/requirements.txt +1 -1
- openwisp_users-1.2.0/openwisp_users/static/openwisp-users/css/admin.css +0 -4
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/LICENSE +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/MANIFEST.in +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/README.rst +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/__init__.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/locale/de/LC_MESSAGES/django.po +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/locale/fur/LC_MESSAGES/django.po +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/locale/it/LC_MESSAGES/django.po +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/locale/ru/LC_MESSAGES/django.po +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/locale/sl/LC_MESSAGES/django.po +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/static/openwisp-users/accounts/css/change-password.css +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/static/openwisp-users/accounts/css/non-admin.css +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/email/base_message.txt +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/email/email_confirmation_message.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/email/email_confirmation_message.txt +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/email/email_confirmation_signup_message.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/email/password_expiration_message.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/email/password_expiration_message.txt +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/email_confirm.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/email_verification_success.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/login.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/logout_success.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/password_change.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/password_change_success.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/password_not_required.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/allauth/layouts/base.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/urls.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/views.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/api/__init__.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/api/authentication.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/api/filters.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/api/mixins.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/api/permissions.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/api/serializers.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/api/swagger.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/api/throttling.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/api/urls.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/api/views.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/apps.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/base/__init__.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/base/models.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/locale/de/LC_MESSAGES/django.po +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/locale/fur/LC_MESSAGES/django.po +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/locale/it/LC_MESSAGES/django.po +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/locale/ru/LC_MESSAGES/django.po +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/locale/sl/LC_MESSAGES/django.po +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/management/__init__.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/management/commands/__init__.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/management/commands/export_users.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/middleware.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0001_initial.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0002_auto_20180508_2017.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0003_default_organization.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0004_default_groups.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0005_user_phone_number.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0006_id_email_index_together.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0007_unique_email.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0008_update_admins_permissions.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0009_create_organization_owners.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0010_allow_admins_change_organization.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0011_user_first_name_150_max_length.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0012_user_location_max_length_256.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0013_user_birth_date.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0014_user_notes.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0015_alter_organization_users_alter_organizationuser_user.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0016_organizationinvitation.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0017_user_language.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0018_allow_operator_view_organisation.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0019_user_password_updated.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0020_populate_password_updated_field.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0021_rename_user_id_email_openwisp_us_id_06c07a_idx.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/__init__.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/mixins.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/models.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/multitenancy.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/password_validation.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/static/openwisp-users/css/change-password.css +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/static/openwisp-users/js/addform.js +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/static/openwisp-users/js/org-autocomplete.js +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tasks.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/templates/admin/action_confirmation.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/templates/admin/login.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/templates/admin/openwisp_users/user/change_form.html +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/__init__.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_accounts.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_admin.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_api/__init__.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_api/test_api.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_api/test_authentication.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_api/test_throttling.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_api/test_views.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_commands.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_middlewares.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_models.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/utils.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/utils.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/views.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/widgets.py +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users.egg-info/SOURCES.txt +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users.egg-info/dependency_links.txt +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users.egg-info/not-zip-safe +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users.egg-info/top_level.txt +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/pyproject.toml +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/setup.cfg +0 -0
- {openwisp_users-1.2.0 → openwisp_users-1.2.1}/setup.py +0 -0
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
Changelog
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
|
+
Version 1.2.1 [2026-04-22]
|
|
5
|
+
--------------------------
|
|
6
|
+
|
|
7
|
+
Changes
|
|
8
|
+
~~~~~~~
|
|
9
|
+
|
|
10
|
+
Dependencies
|
|
11
|
+
++++++++++++
|
|
12
|
+
|
|
13
|
+
- Allowed upgrade of django-allauth up to 65.13.0.
|
|
14
|
+
|
|
15
|
+
Bugfixes
|
|
16
|
+
~~~~~~~~
|
|
17
|
+
|
|
18
|
+
- Allowed managing social auth secrets when needed.
|
|
19
|
+
- Ensured ``site_name`` is displayed in password reset email `#482
|
|
20
|
+
<https://github.com/openwisp/openwisp-users/issues/482>`_.
|
|
21
|
+
- Prevented authentication without a username in
|
|
22
|
+
``UsersAuthenticationBackend``.
|
|
23
|
+
|
|
4
24
|
Version 1.2.0 [2025-10-23]
|
|
5
25
|
--------------------------
|
|
6
26
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openwisp-users
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.1
|
|
4
4
|
Summary: Provides basic multi-tenancy features for OpenWISP (using the Django web-framework)
|
|
5
5
|
Home-page: http://openwisp.org
|
|
6
6
|
Download-URL: https://github.com/openwisp/openwisp-users/releases
|
|
@@ -20,7 +20,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
20
20
|
License-File: LICENSE
|
|
21
21
|
Requires-Dist: django-organizations<2.6.0,>=2.5.0
|
|
22
22
|
Requires-Dist: django-extensions<4.2,>=3.2
|
|
23
|
-
Requires-Dist: django-allauth[socialaccount]<65.
|
|
23
|
+
Requires-Dist: django-allauth[socialaccount]<65.14.0,>=65.12.0
|
|
24
24
|
Requires-Dist: django-phonenumber-field<8.2.0,>=8.1.0
|
|
25
25
|
Requires-Dist: phonenumbers<9.1.0,>=9.0.10
|
|
26
26
|
Requires-Dist: openwisp-utils[celery,rest]~=1.2.0
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from allauth.account.adapter import DefaultAccountAdapter
|
|
2
|
+
from django.contrib.sites.shortcuts import get_current_site
|
|
2
3
|
from django.template import TemplateDoesNotExist
|
|
3
4
|
from django.template.loader import render_to_string
|
|
4
5
|
from django.utils.translation import gettext as _
|
|
@@ -8,6 +9,8 @@ from openwisp_utils.admin_theme.email import send_email
|
|
|
8
9
|
|
|
9
10
|
class EmailAdapter(DefaultAccountAdapter):
|
|
10
11
|
def send_mail(self, template_prefix, email, context):
|
|
12
|
+
if "current_site" not in context and hasattr(self, "request"):
|
|
13
|
+
context["current_site"] = get_current_site(self.request)
|
|
11
14
|
subject = render_to_string("{0}_subject.txt".format(template_prefix), context)
|
|
12
15
|
subject = " ".join(subject.splitlines()).strip()
|
|
13
16
|
subject = self.format_email_subject(subject)
|
|
@@ -652,11 +652,14 @@ if admin.site.is_registered(EmailAddress):
|
|
|
652
652
|
admin.site.unregister(EmailAddress)
|
|
653
653
|
|
|
654
654
|
if allauth_settings.SOCIALACCOUNT_ENABLED:
|
|
655
|
-
|
|
656
|
-
("socialaccount", "SocialApp"),
|
|
655
|
+
socialaccount_models = [
|
|
657
656
|
("socialaccount", "SocialToken"),
|
|
658
657
|
("socialaccount", "SocialAccount"),
|
|
659
|
-
]
|
|
658
|
+
]
|
|
659
|
+
# Allow managing secrets if OAuth/SAML is enabled
|
|
660
|
+
if not app_settings.SOCIALACCOUNT_ADMIN_NEEDED:
|
|
661
|
+
socialaccount_models.append(("socialaccount", "SocialApp"))
|
|
662
|
+
for model in socialaccount_models:
|
|
660
663
|
model_class = apps.get_model(*model)
|
|
661
664
|
if admin.site.is_registered(model_class):
|
|
662
665
|
admin.site.unregister(model_class)
|
|
@@ -11,6 +11,11 @@ User = get_user_model()
|
|
|
11
11
|
|
|
12
12
|
class UsersAuthenticationBackend(ModelBackend):
|
|
13
13
|
def authenticate(self, request, username=None, password=None, **kwargs):
|
|
14
|
+
# Only proceed if a username is provided. Other auth backends may attempt
|
|
15
|
+
# authentication without a username; returning early here avoids querying
|
|
16
|
+
# the database with a `None` username, which can be inefficient.
|
|
17
|
+
if not username:
|
|
18
|
+
return
|
|
14
19
|
for user in self.get_users(username):
|
|
15
20
|
if user.check_password(password) and self.user_can_authenticate(user):
|
|
16
21
|
return user
|
|
@@ -49,3 +49,12 @@ setattr(
|
|
|
49
49
|
"openwisp_users.views.AutocompleteJsonView",
|
|
50
50
|
),
|
|
51
51
|
)
|
|
52
|
+
|
|
53
|
+
# if OAuth/SAML is enabled, allow manging keys/secrets
|
|
54
|
+
if any(
|
|
55
|
+
app.startswith("allauth.socialaccount.providers") for app in settings.INSTALLED_APPS
|
|
56
|
+
): # pragma: no cover
|
|
57
|
+
SOCIALACCOUNT_ADMIN_NEEDED = True
|
|
58
|
+
# otherwise hide the socialaccount admin (not needed)
|
|
59
|
+
else:
|
|
60
|
+
SOCIALACCOUNT_ADMIN_NEEDED = False
|
|
@@ -43,3 +43,16 @@ class TestEmailAdapter(TestOrganizationMixin, TestCase):
|
|
|
43
43
|
self.assertFalse(email.alternatives)
|
|
44
44
|
self.assertIn("Password Reset Email", email.subject)
|
|
45
45
|
self.assertIn("Click the link below to reset your password", email.body)
|
|
46
|
+
|
|
47
|
+
def test_password_reset_includes_site_name(self):
|
|
48
|
+
self._create_user()
|
|
49
|
+
params = {"email": "test@tester.com"}
|
|
50
|
+
self.client.post(reverse("account_reset_password"), params, follow=True)
|
|
51
|
+
self.assertEqual(len(mail.outbox), 1)
|
|
52
|
+
email = mail.outbox[0]
|
|
53
|
+
# plain text body should contain example.com from site name
|
|
54
|
+
self.assertIn("example.com", email.body)
|
|
55
|
+
# if there is an HTML alternative, check it too
|
|
56
|
+
if email.alternatives:
|
|
57
|
+
html = email.alternatives[0][0]
|
|
58
|
+
self.assertIn("example.com", html)
|
|
@@ -153,3 +153,13 @@ class TestBackends(TestOrganizationMixin, TestCase):
|
|
|
153
153
|
password="tester2",
|
|
154
154
|
)
|
|
155
155
|
self.assertEqual(auth_backend.get_users("911524370").count(), 0)
|
|
156
|
+
|
|
157
|
+
@mock.patch("openwisp_users.backends.UsersAuthenticationBackend.get_users")
|
|
158
|
+
def test_user_auth_without_email(self, mocked_get_users):
|
|
159
|
+
self._create_user(
|
|
160
|
+
username="tester",
|
|
161
|
+
password="tester",
|
|
162
|
+
email=None,
|
|
163
|
+
)
|
|
164
|
+
self.client.login(username=None, password=None)
|
|
165
|
+
mocked_get_users.assert_not_called()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openwisp-users
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.1
|
|
4
4
|
Summary: Provides basic multi-tenancy features for OpenWISP (using the Django web-framework)
|
|
5
5
|
Home-page: http://openwisp.org
|
|
6
6
|
Download-URL: https://github.com/openwisp/openwisp-users/releases
|
|
@@ -20,7 +20,7 @@ Classifier: Programming Language :: Python :: 3
|
|
|
20
20
|
License-File: LICENSE
|
|
21
21
|
Requires-Dist: django-organizations<2.6.0,>=2.5.0
|
|
22
22
|
Requires-Dist: django-extensions<4.2,>=3.2
|
|
23
|
-
Requires-Dist: django-allauth[socialaccount]<65.
|
|
23
|
+
Requires-Dist: django-allauth[socialaccount]<65.14.0,>=65.12.0
|
|
24
24
|
Requires-Dist: django-phonenumber-field<8.2.0,>=8.1.0
|
|
25
25
|
Requires-Dist: phonenumbers<9.1.0,>=9.0.10
|
|
26
26
|
Requires-Dist: openwisp-utils[celery,rest]~=1.2.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
django-organizations<2.6.0,>=2.5.0
|
|
2
2
|
django-extensions<4.2,>=3.2
|
|
3
|
-
django-allauth[socialaccount]<65.
|
|
3
|
+
django-allauth[socialaccount]<65.14.0,>=65.12.0
|
|
4
4
|
django-phonenumber-field<8.2.0,>=8.1.0
|
|
5
5
|
phonenumbers<9.1.0,>=9.0.10
|
|
6
6
|
openwisp-utils[celery,rest]~=1.2.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
django-organizations>=2.5.0,<2.6.0
|
|
2
2
|
django-extensions>=3.2,<4.2
|
|
3
|
-
django-allauth[socialaccount]>=65.12.0,<65.
|
|
3
|
+
django-allauth[socialaccount]>=65.12.0,<65.14.0
|
|
4
4
|
django-phonenumber-field>=8.1.0,<8.2.0
|
|
5
5
|
phonenumbers>=9.0.10,<9.1.0
|
|
6
6
|
openwisp-utils[rest,celery]~=1.2.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/accounts/templates/account/login.html
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
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/locale/de/LC_MESSAGES/django.po
RENAMED
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/locale/fur/LC_MESSAGES/django.po
RENAMED
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/locale/it/LC_MESSAGES/django.po
RENAMED
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/locale/ru/LC_MESSAGES/django.po
RENAMED
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/locale/sl/LC_MESSAGES/django.po
RENAMED
|
File without changes
|
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/management/commands/__init__.py
RENAMED
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/management/commands/export_users.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0002_auto_20180508_2017.py
RENAMED
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0003_default_organization.py
RENAMED
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0004_default_groups.py
RENAMED
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0005_user_phone_number.py
RENAMED
|
File without changes
|
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0007_unique_email.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0013_user_birth_date.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/migrations/0017_user_language.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
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/static/openwisp-users/js/addform.js
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
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_api/test_authentication.py
RENAMED
|
File without changes
|
{openwisp_users-1.2.0 → openwisp_users-1.2.1}/openwisp_users/tests/test_api/test_throttling.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
|