forked from DGNum/gestiojeux
25 lines
1.1 KiB
Python
25 lines
1.1 KiB
Python
|
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
|