User Django's provided form for setting an users password.

This change allows displaying the current password policies
and validation.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2017-09-17 01:43:02 -04:00
parent 6e93985fe2
commit f14c67a444
3 changed files with 7 additions and 30 deletions

View File

@@ -2,36 +2,9 @@ from __future__ import unicode_literals
from django import forms
from django.contrib.auth import get_user_model
from django.contrib.auth.password_validation import validate_password
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _
class UserForm(forms.ModelForm):
class Meta:
model = get_user_model()
fields = ('username', 'first_name', 'last_name', 'email', 'is_active',)
class PasswordForm(forms.Form):
new_password_1 = forms.CharField(
label=_('New password'), widget=forms.PasswordInput()
)
new_password_2 = forms.CharField(
label=_('Confirm password'), widget=forms.PasswordInput()
)
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
return super(PasswordForm, self).__init__(*args, **kwargs)
def clean(self):
password_1 = self.cleaned_data['new_password_1']
password_2 = self.cleaned_data['new_password_2']
if password_1 != password_2:
raise ValidationError('Passwords do not match.')
else:
if self.user:
validate_password(password_2, self.user)
return self.cleaned_data