Forbids same username case-insensitiveless

redesign-tournament-list
Laurent 8 months ago
parent aa339d0807
commit 0672184d46
  1. 10
      api/serializers.py
  2. 8
      tournaments/forms.py
  3. 12
      tournaments/views.py

@ -3,12 +3,16 @@ from tournaments.models.court import Court
from tournaments.models import Club, LiveMatch, TeamScore, Tournament, CustomUser, Event, Round, GroupStage, Match, TeamRegistration, PlayerRegistration, Purchase, FailedApiCall, DateInterval, Log, DeviceToken, UnregisteredTeam, UnregisteredPlayer
from django.contrib.auth import password_validation
from django.utils.translation import gettext_lazy as _
from django.db.utils import IntegrityError
from django.conf import settings
# email
from django.template.loader import render_to_string
from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode
from django.utils.encoding import force_bytes
from django.core.mail import EmailMessage
from django.contrib.sites.shortcuts import get_current_site
from api.tokens import account_activation_token
from shared.cryptography import encryption_util
@ -48,6 +52,9 @@ class UserSerializer(serializers.ModelSerializer):
if 'country' in validated_data:
country = validated_data['country']
if CustomUser.objects.filter(username__iexact=validated_data['username'].lower()):
raise IntegrityError("Le nom d'utilisateur existe déjà")
user = CustomUser.objects.create_user(
username=validated_data['username'],
email=validated_data['email'],
@ -73,7 +80,8 @@ class UserSerializer(serializers.ModelSerializer):
origin=UserOrigin.APP,
)
self.send_email(self.context['request'], user)
if not settings.DEBUG:
self.send_email(self.context['request'], user)
# RegistrationProfile.objects.filter(user=user).send_activation_email()
return user

@ -58,6 +58,14 @@ class SimpleCustomUserCreationForm(UserCreationForm):
'password2': 'Confirmer le mot de passe',
}
def clean_username(self):
username = self.cleaned_data.get('username')
if username:
username = username.lower()
if CustomUser.objects.filter(username__iexact=username).exists():
raise forms.ValidationError("Le nom d'utilisateur existe déjà")
return username
class CustomUserChangeForm(UserChangeForm):

@ -1,17 +1,21 @@
# Standard library imports
import os
import csv
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse
from django.http import JsonResponse, HttpResponse
from django.utils.encoding import force_str
from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode
from django.urls import reverse
from django.conf import settings
from django.views.decorators.csrf import csrf_exempt
from django.contrib.admin.views.decorators import staff_member_required
from django.core.files.storage import default_storage
from django.core.files.base import ContentFile
from django.views.generic import View
from django.db.models import Q
from django.template import loader
from tournaments.models.device_token import DeviceToken
@ -20,10 +24,7 @@ from .models import TeamSummon
from datetime import datetime, timedelta
import time
from django.template import loader
from datetime import date
from django.http import JsonResponse, HttpResponse
from django.db.models import Q
import json
import time
import asyncio
@ -638,7 +639,8 @@ def signup(request):
user.origin = UserOrigin.SITE
user.save()
send_verification_email(request, user, next_url)
if not settings.DEBUG:
send_verification_email(request, user, next_url)
return render(request, 'registration/signup_success.html', {
'next_url': next_url,

Loading…
Cancel
Save