Add forgot password.
--- a/src/iconolab/auth/urls.py Wed Apr 12 14:36:44 2017 +0200
+++ b/src/iconolab/auth/urls.py Wed Apr 12 19:20:16 2017 +0200
@@ -8,7 +8,5 @@
url(r'^register/$', views.RegisterView.as_view(), name='register'),
url(r'^register/created/$', views.UserCreatedView.as_view(), name='user_created'),
url(r'^login/$', views.LoginView.as_view(), name='login'),
- url(r'^password/reset$', password_change, name='password_reset'),
url(r'^logout/', views.LogoutView.as_view(), name='logout'),
- #url(r'^password/reset', view)
]
--- a/src/iconolab/templates/registration/login.html Wed Apr 12 14:36:44 2017 +0200
+++ b/src/iconolab/templates/registration/login.html Wed Apr 12 19:20:16 2017 +0200
@@ -20,6 +20,7 @@
</fieldset>
{% endfor %}
<input type="hidden" name="next" value="{{next}}">
+ <p><a href="{% url 'password_reset' %}">Mot de passe oublié ?</a></p>
<input type="submit" value="S'identifier" class="btn btn-block btn-primary">
</form>
</div>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/templates/registration/password_reset_complete.html Wed Apr 12 19:20:16 2017 +0200
@@ -0,0 +1,8 @@
+{% extends 'iconolab_base.html' %}
+
+{% block content %}
+<div class="col-md-6 col-md-offset-3">
+ <div class="alert alert-info">
+ Votre mot de passe a été mis à jour. Vous pouvez vous <a href="{% url 'account:login' %}">connecter</a>.
+ </div>
+{% endblock %}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/templates/registration/password_reset_confirm.html Wed Apr 12 19:20:16 2017 +0200
@@ -0,0 +1,30 @@
+{% extends 'iconolab_base.html' %}
+
+{% block content %}
+<div class="col-md-6 col-md-offset-3">
+ {% if validlink %}
+ <h3>Mettre à jour le mot de passe</h3>
+ <form method="post">
+ {% csrf_token %}
+ <fieldset class="form-group">
+ <label>Nouveau mot de passe</label>
+ <input type="password" class="form-control" name="{{ form.new_password1.name }}" id="id_{{ form.new_password1.name }}">
+ {% if form.new_password1.help_text %}
+ <p class="help-block">{{ form.new_password1.help_text|safe }}</p>
+ {% endif %}
+ </fieldset>
+
+ <fieldset class="form-group">
+ <label>Confirmation du mot de passe</label>
+ <input type="password" class="form-control" name="{{ form.new_password2.name }}" id="id_{{ form.new_password2.name }}">
+ </fieldset>
+
+ <button type="submit" class="btn btn-block btn-primary">Mettre à jour</button>
+ </form>
+ {% else %}
+ <p>
+ Le lien de réinitialisation du mot de passe est invalide.
+ </p>
+ {% endif %}
+</div>
+{% endblock %}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/templates/registration/password_reset_done.html Wed Apr 12 19:20:16 2017 +0200
@@ -0,0 +1,9 @@
+{% extends 'iconolab_base.html' %}
+
+{% block content %}
+<div class="col-md-6 col-md-offset-3">
+ <div class="alert alert-info">
+ Nous vous avons envoyé un email avec des instructions pour réintialiser votre mot de passe.
+ </div>
+</div>
+{% endblock %}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/templates/registration/password_reset_email.html Wed Apr 12 19:20:16 2017 +0200
@@ -0,0 +1,11 @@
+{% autoescape off %}
+Pour réinitialiser le mot de passe pour votre compte {{ user.get_username }} sur iconolab,
+veuillez suivre le lien ci-dessous :
+
+{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}
+
+Si vous ne pouvez pas cliquez sur ce lien, copiez-collez le lien dans votre navigateur.
+
+Cordialement,
+L'équipe iconolab
+{% endautoescape %}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab/templates/registration/password_reset_form.html Wed Apr 12 19:20:16 2017 +0200
@@ -0,0 +1,16 @@
+{% extends 'iconolab_base.html' %}
+
+{% block content %}
+<div class="col-md-6 col-md-offset-3">
+ <h3 class="text-center">Réinitialisez votre mot de passe </h3>
+ {% if form.errors %}{{ form.errors }}{% endif %}
+ <form method="post">
+ {% csrf_token %}
+ <fieldset class="form-group">
+ <label>Entrez votre email</label>
+ <input type="email" class="form-control" name="{{ form.email.name }}" id="id_{{ form.email.name }}">
+ </fieldset>
+ <button type="submit" class="btn btn-block btn-primary">Réinitialiser</button>
+ </form>
+</div>
+{% endblock %}
--- a/src/iconolab/urls.py Wed Apr 12 14:36:44 2017 +0200
+++ b/src/iconolab/urls.py Wed Apr 12 19:20:16 2017 +0200
@@ -23,6 +23,7 @@
from django.conf.urls.static import static
from django.contrib.auth.decorators import login_required
+from django.contrib.auth.views import password_reset, password_reset_done, password_reset_confirm, password_reset_complete
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
import notifications.urls
@@ -63,6 +64,11 @@
url(r'^legalmentions/', views.misc.LegalMentionsView.as_view(), name="iconolab_legals"),
url(r'^account/', include('iconolab.auth.urls', namespace='account')),
+ url(r'^password/reset$', password_reset, name='password_reset'),
+ url(r'^password/reset/done$', password_reset_done, name='password_reset_done'),
+ url(r'^password/reset/complete$', password_reset_complete, name='password_reset_complete'),
+ url(r'^password/reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', password_reset_confirm, name='password_reset_confirm'),
+
url(r'^search/', include('iconolab.search_indexes.urls', namespace='search_indexes')),
url(r'^comments/', include('django_comments_xtd.urls')),
url(r'^comments/annotation/post', views.comments.post_comment_iconolab, name="post_comment"),