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)
return user.username
except ObjectDoesNotExist:
return None # or handle the case where the user doesn't exist
return None
class Logout(APIView):
permission_classes = (IsAuthenticated,)

@ -1,11 +1,12 @@
import random
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.conf import settings
from tournaments.models.tournament import Tournament
from tournaments.models.unregistered_player import UnregisteredPlayer
from django.utils import timezone
from django.db.utils import IntegrityError
from .models import Club, FailedApiCall, CustomUser, Log, TeamRegistration, PlayerRegistration, UnregisteredTeam, UnregisteredPlayer
import requests
@ -14,6 +15,12 @@ from tournaments.models import PlayerDataSource
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():
characters = string.ascii_lowercase + string.digits
while True:

Loading…
Cancel
Save