From 46ecc3f103775b5961b744c7a6b76f375040501d Mon Sep 17 00:00:00 2001 From: Eliot Berriot <contact@eliotberriot.com> Date: Thu, 21 Jun 2018 19:41:40 +0200 Subject: [PATCH] See #248: ensure invitation codes are case insensitive --- api/funkwhale_api/manage/serializers.py | 2 +- api/funkwhale_api/users/models.py | 2 +- api/funkwhale_api/users/serializers.py | 2 +- api/tests/users/test_views.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/api/funkwhale_api/manage/serializers.py b/api/funkwhale_api/manage/serializers.py index d1a9ebb8..c639d3a3 100644 --- a/api/funkwhale_api/manage/serializers.py +++ b/api/funkwhale_api/manage/serializers.py @@ -146,7 +146,7 @@ class ManageInvitationSerializer(serializers.ModelSerializer): def validate_code(self, value): if not value: return value - if users_models.Invitation.objects.filter(code=value.lower()).exists(): + if users_models.Invitation.objects.filter(code__iexact=value).exists(): raise serializers.ValidationError( "An invitation with this code already exists" ) diff --git a/api/funkwhale_api/users/models.py b/api/funkwhale_api/users/models.py index e205d04d..ec9c39fd 100644 --- a/api/funkwhale_api/users/models.py +++ b/api/funkwhale_api/users/models.py @@ -152,7 +152,7 @@ class User(AbstractUser): def generate_code(length=10): return "".join( - random.SystemRandom().choice(string.ascii_lowercase) for _ in range(length) + random.SystemRandom().choice(string.ascii_uppercase) for _ in range(length) ) diff --git a/api/funkwhale_api/users/serializers.py b/api/funkwhale_api/users/serializers.py index f857e8da..43895126 100644 --- a/api/funkwhale_api/users/serializers.py +++ b/api/funkwhale_api/users/serializers.py @@ -18,7 +18,7 @@ class RegisterSerializer(RS): return try: - return models.Invitation.objects.open().get(code=value.lower()) + return models.Invitation.objects.open().get(code__iexact=value) except models.Invitation.DoesNotExist: raise serializers.ValidationError("Invalid invitation code") diff --git a/api/tests/users/test_views.py b/api/tests/users/test_views.py index 0ad67fb8..72336019 100644 --- a/api/tests/users/test_views.py +++ b/api/tests/users/test_views.py @@ -52,7 +52,7 @@ def test_can_disable_registration_view(preferences, api_client, db): def test_can_signup_with_invitation(preferences, factories, api_client): url = reverse("rest_register") - invitation = factories["users.Invitation"](code="hello") + invitation = factories["users.Invitation"](code="Hello") data = { "username": "test1", "email": "test1@test.com", -- GitLab