Refactor: split code into several django apps (we call them modules).
This commit is contained in:
76
dav_auth/forms.py
Normal file
76
dav_auth/forms.py
Normal file
@@ -0,0 +1,76 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
from django import forms
|
||||
from django.contrib.auth import forms as auth_forms, password_validation
|
||||
from django.utils.translation import ugettext, ugettext_lazy as _
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class LoginForm(auth_forms.AuthenticationForm):
|
||||
username = auth_forms.UsernameField(
|
||||
max_length=254,
|
||||
label=_(u'E-Mail-Adresse'),
|
||||
widget=forms.TextInput(attrs={'autofocus': True}),
|
||||
)
|
||||
|
||||
error_messages = {
|
||||
'invalid_login': _(u'Benutzername oder Passwort falsch.'),
|
||||
'inactive': _("This account is inactive."),
|
||||
}
|
||||
|
||||
def clean_username(self):
|
||||
username = self.cleaned_data.get('username')
|
||||
return username.lower()
|
||||
|
||||
|
||||
class SetPasswordForm(forms.Form):
|
||||
new_password = forms.CharField(max_length=12,
|
||||
label=_(u'Neues Passwort'),
|
||||
widget=forms.PasswordInput)
|
||||
new_password_repeat = forms.CharField(max_length=12,
|
||||
label=_(u'Neues Passwort wiederholen'),
|
||||
widget=forms.PasswordInput)
|
||||
send_password_mail = forms.BooleanField(required=False,
|
||||
initial=False,
|
||||
label=_(u'Neues Passwort per E-Mail zusenden'),
|
||||
)
|
||||
|
||||
def __init__(self, user, *args, **kwargs):
|
||||
self.user = user
|
||||
super(SetPasswordForm, self).__init__(*args, **kwargs)
|
||||
|
||||
def clean_new_password(self):
|
||||
password = self.cleaned_data.get('new_password')
|
||||
password_validation.validate_password(password, self.user)
|
||||
return password
|
||||
|
||||
def clean_new_password_repeat(self):
|
||||
password1 = self.cleaned_data.get('new_password')
|
||||
password2 = self.cleaned_data.get('new_password_repeat')
|
||||
if password1 and password2:
|
||||
if password1 != password2:
|
||||
raise forms.ValidationError(
|
||||
ugettext(u'Passwörter stimmen nicht überein'),
|
||||
code='password_mismatch',
|
||||
)
|
||||
return password2
|
||||
|
||||
def save(self, commit=True):
|
||||
new_password = self.cleaned_data.get('new_password')
|
||||
self.user.set_password(new_password)
|
||||
if commit:
|
||||
self.user.save()
|
||||
return self.user
|
||||
|
||||
|
||||
class ResetPasswordForm(forms.Form):
|
||||
username = auth_forms.UsernameField(
|
||||
max_length=254,
|
||||
label=_(u'E-Mail-Adresse'),
|
||||
widget=forms.TextInput(attrs={'autofocus': True}),
|
||||
)
|
||||
|
||||
def clean_username(self):
|
||||
username = self.cleaned_data.get('username')
|
||||
return username.lower()
|
||||
Reference in New Issue
Block a user