gestiojeux/gestiojeux_auth/forms.py

25 lines
1.1 KiB
Python
Raw Normal View History

from django.forms import ModelForm, ValidationError
from django.contrib.auth.models import User
class AccountSettingsForm(ModelForm):
class Meta:
model = User
fields = ["first_name"]
labels = {"first_name": "Nom ou pseudo"}
help_texts = {
"first_name": "Ce nom sera utilisé pour toutes vos interactions publiques sur GestioJeux. Si laissé vide, votre login sera utilisé à la place."
}
def clean_first_name(self):
""" Check there is no conflict that could lead to imprersonation """
public_name = self.cleaned_data["first_name"]
public_name = public_name.strip()
if public_name == self.instance.first_name or public_name == "":
return public_name
if User.objects.filter(first_name=public_name).count() > 0:
raise ValidationError("Un autre compte utilise déjà ce nom ou ce pseudo.")
if User.objects.filter(username=public_name).count() > 0:
raise ValidationError("Ce nom est déjà le login de quelqu'un.")
return public_name