UPD: dav_auth: refactor the ResetPasswordView for better name
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
import logging
|
||||
from django.apps import apps
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth import views as auth_views, get_user_model
|
||||
from django.contrib.auth.password_validation import validate_password
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import resolve_url
|
||||
from django.urls import reverse_lazy, reverse
|
||||
@@ -27,6 +29,10 @@ class LoginView(auth_views.LoginView):
|
||||
|
||||
def form_valid(self, form):
|
||||
r = super(LoginView, self).form_valid(form)
|
||||
try:
|
||||
validate_password(form.cleaned_data['password'])
|
||||
except ValidationError as e:
|
||||
logger.warning(u'Weak password (%d): %s', self.request.user.pk, e)
|
||||
messages.success(self.request, _(u'Benutzer angemeldet: %(username)s') % {'username': form.get_user()})
|
||||
return r
|
||||
|
||||
@@ -60,9 +66,9 @@ class SetPasswordView(auth_views.PasswordChangeView):
|
||||
return r
|
||||
|
||||
|
||||
class ResetPasswordView(generic.FormView):
|
||||
form_class = forms.ResetPasswordForm
|
||||
template_name = 'dav_auth/forms/reset_password.html'
|
||||
class CreateAndSendPasswordView(generic.FormView):
|
||||
form_class = forms.CreateAndSendPasswordForm
|
||||
template_name = 'dav_auth/forms/recreate_password.html'
|
||||
success_url = reverse_lazy('dav_auth:login')
|
||||
|
||||
def form_valid(self, form):
|
||||
@@ -76,13 +82,13 @@ class ResetPasswordView(generic.FormView):
|
||||
email = emails.PasswordSetEmail(user, random_password)
|
||||
email.send()
|
||||
messages.success(self.request, _(u'Neues Passwort versendet.'))
|
||||
logger.info('Password reset for user \'%s\'', username)
|
||||
logger.info('Password recreated for user \'%s\'', username)
|
||||
except user_model.DoesNotExist:
|
||||
logger.warning('Password reset for unknown user \'%s\'', username)
|
||||
logger.warning('Password recreated for unknown user \'%s\'', username)
|
||||
|
||||
return super(ResetPasswordView, self).form_valid(form)
|
||||
return super(CreateAndSendPasswordView, self).form_valid(form)
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
if request.user.is_authenticated:
|
||||
return HttpResponseRedirect(reverse('dav_auth:set_password'))
|
||||
return super(ResetPasswordView, self).get(request, *args, **kwargs)
|
||||
return super(CreateAndSendPasswordView, self).get(request, *args, **kwargs)
|
||||
|
||||
Reference in New Issue
Block a user