Browse Source

password reset : vérification existance email

Élie Bouttier 8 years ago
parent
commit
6a6698384e
3 changed files with 19 additions and 3 deletions
  1. 13 1
      accounts/forms.py
  2. 1 1
      accounts/templates/registration/password_reset_done.html
  3. 5 1
      accounts/urls.py

+ 13 - 1
accounts/forms.py

@@ -1,4 +1,5 @@
-from django.forms import ModelForm
+from django.forms import ModelForm, ValidationError
+from django.contrib.auth.forms import PasswordResetForm as AuthPasswordResetForm
 
 from adhesions.models import User
 from .models import Profile
@@ -15,3 +16,14 @@ class ProfileForm(ModelForm):
     class Meta:
         model = Profile
         fields = ('phone_number', 'address',)
+
+
+class PasswordResetForm(AuthPasswordResetForm):
+    def clean_email(self):
+        email = self.cleaned_data['email']
+        try:
+            user = User.objects.get(email=email)
+        except User.DoesNotExist:
+            raise ValidationError('Aucun utilisateur connu avec cette adresse e-mail.')
+        else:
+            return email

+ 1 - 1
accounts/templates/registration/password_reset_done.html

@@ -3,7 +3,7 @@
 {% block content %}
         <p>
             Un e-mail contenant un lien vous permettant de réinitialiser votre mot de passe vous a été envoyé.
-            Pensez à consulter votre dossier « spam ».
+            Si vous ne le recevez pas, celui-ci est peut-être arrivé dans votre dossier « spam ».
         </p>
         <a class="btn btn-primary" href="{% url 'login' %}">Se connecter</a>
 {% endblock %}

+ 5 - 1
accounts/urls.py

@@ -1,9 +1,13 @@
+from django.contrib.auth import views as auth_views
+
 from django.conf.urls import url, include
 
 from . import views
+from .forms import PasswordResetForm
 
 
 urlpatterns = [
-    url(r'^', include('django.contrib.auth.urls')),
     url(r'^profile/$', views.profile, name='profile'),
+    url(r'^password_reset/$', auth_views.PasswordResetView.as_view(form_class=PasswordResetForm), name='password_reset'),
+    url(r'^', include('django.contrib.auth.urls')),
 ]