Raise error if we find users with the same letters, case-insensitive wise

redesign-tournament-list
Laurent 8 months ago
parent f3fa3e0e9c
commit cf14bcbb4b
  1. 2
      api/views.py
  2. 9
      tournaments/signals.py

@ -59,7 +59,7 @@ class CustomAuthToken(APIView):
user = CustomUser.objects.get(email=email) user = CustomUser.objects.get(email=email)
return user.username return user.username
except ObjectDoesNotExist: except ObjectDoesNotExist:
return None # or handle the case where the user doesn't exist return None
class Logout(APIView): class Logout(APIView):
permission_classes = (IsAuthenticated,) permission_classes = (IsAuthenticated,)

@ -1,11 +1,12 @@
import random import random
import string import string
from django.db.models.signals import post_save, pre_delete, post_delete from django.db.models.signals import pre_save, post_save, pre_delete, post_delete
from django.dispatch import receiver from django.dispatch import receiver
from django.conf import settings from django.conf import settings
from tournaments.models.tournament import Tournament from tournaments.models.tournament import Tournament
from tournaments.models.unregistered_player import UnregisteredPlayer from tournaments.models.unregistered_player import UnregisteredPlayer
from django.utils import timezone from django.utils import timezone
from django.db.utils import IntegrityError
from .models import Club, FailedApiCall, CustomUser, Log, TeamRegistration, PlayerRegistration, UnregisteredTeam, UnregisteredPlayer from .models import Club, FailedApiCall, CustomUser, Log, TeamRegistration, PlayerRegistration, UnregisteredTeam, UnregisteredPlayer
import requests import requests
@ -14,6 +15,12 @@ from tournaments.models import PlayerDataSource
from shared.discord import send_discord_log_message, send_discord_failed_calls_message from shared.discord import send_discord_log_message, send_discord_failed_calls_message
@receiver(pre_save, sender=CustomUser)
def username_check(instance, sender, **kwargs):
"""Ensure that username unique constraint is case insensitive"""
if sender.objects.filter(username__iexact=instance.username.lower()):
raise IntegrityError("Le nom d'utilisateur existe déjà")
def generate_unique_code(): def generate_unique_code():
characters = string.ascii_lowercase + string.digits characters = string.ascii_lowercase + string.digits
while True: while True:

Loading…
Cancel
Save