36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
from django.contrib.auth.models import User
|
|
from django.contrib.auth.forms import UserCreationForm
|
|
from django import forms
|
|
from django.conf import settings
|
|
|
|
|
|
class CreateUserForm(UserCreationForm):
|
|
key = forms.CharField(
|
|
label="Clef de sécurité",
|
|
widget=forms.PasswordInput,
|
|
help_text="Cette clef est fournie par l'administrat·rice·eur "
|
|
"du site. Pour en obtenir une veuillez la-le contacter."
|
|
)
|
|
error_m = {'wrong_key': "La clef fournie est erronée."}
|
|
|
|
class Meta:
|
|
model = User
|
|
fields = ('username', 'first_name', 'last_name',
|
|
'email', 'password1', 'password2',)
|
|
|
|
def save(self, commit=True):
|
|
user = super(CreateUserForm, self).save(commit=False)
|
|
user.email = self.cleaned_data["email"]
|
|
user.first_name = self.cleaned_data["first_name"]
|
|
user.last_name = self.cleaned_data["last_name"]
|
|
if commit:
|
|
user.save()
|
|
return user
|
|
|
|
def clean_key(self):
|
|
key = self.cleaned_data.get("key")
|
|
if key != settings.CREATE_USER_KEY:
|
|
raise forms.ValidationError(
|
|
self.error_m['wrong_key'],
|
|
code='wrong_key')
|
|
return key
|