diff options
author | Mira Szewczyk <szewczyk.mira@gmail.com> | 2017-02-20 12:43:01 +0100 |
---|---|---|
committer | Mira Szewczyk <szewczyk.mira@gmail.com> | 2017-03-15 12:32:05 +0100 |
commit | c36a7167ff29a689a3d886c532cd16d5f5384e65 (patch) | |
tree | 629120ae8a9be55b8d178a84931fb5110fd87109 /saleor/userprofile | |
parent | d6d4cb25f9f6d2a8455dcdc26e2190b8b45321eb (diff) | |
download | saleor-frontend-c36a7167ff29a689a3d886c532cd16d5f5384e65.tar.gz saleor-frontend-c36a7167ff29a689a3d886c532cd16d5f5384e65.tar.bz2 saleor-frontend-c36a7167ff29a689a3d886c532cd16d5f5384e65.zip |
Password reset
Diffstat (limited to 'saleor/userprofile')
-rw-r--r-- | saleor/userprofile/registration/forms.py | 11 | ||||
-rw-r--r-- | saleor/userprofile/registration/urls.py | 18 | ||||
-rw-r--r-- | saleor/userprofile/registration/views.py | 24 |
3 files changed, 45 insertions, 8 deletions
diff --git a/saleor/userprofile/registration/forms.py b/saleor/userprofile/registration/forms.py index 72eb0e17..2ab46f17 100644 --- a/saleor/userprofile/registration/forms.py +++ b/saleor/userprofile/registration/forms.py @@ -1,13 +1,12 @@ from django import forms from django.contrib.auth import login -from django.contrib.auth.models import User -from django.contrib.auth.forms import AuthenticationForm +from django.contrib.auth import forms as django_forms from django.utils.translation import pgettext from ..models import User -class LoginForm(AuthenticationForm): +class LoginForm(django_forms.AuthenticationForm): username = forms.EmailField( label=pgettext('Form field', 'Email'), max_length=75) @@ -43,3 +42,9 @@ class SignupForm(forms.ModelForm): if request: login(request, user) return user + + +class SetPasswordForm(django_forms.SetPasswordForm): + def __init__(self, *args, **kwargs): + super(SetPasswordForm, self).__init__(*args, **kwargs) + del self.fields['new_password2'] diff --git a/saleor/userprofile/registration/urls.py b/saleor/userprofile/registration/urls.py index ad806222..e359eb04 100644 --- a/saleor/userprofile/registration/urls.py +++ b/saleor/userprofile/registration/urls.py @@ -1,11 +1,21 @@ from django.conf.urls import url +from django.contrib.auth import views as django_views from . import views urlpatterns = [ - url(r'^login/$', views.login, name="account_login"), - url(r'^logout/$', views.logout, name="account_logout"), - url(r'^signup/$', views.signup, name="account_signup"), - url(r'^password/reset/$', views.login, name="account_reset_password"), + url(r'^login/$', views.login, name='account_login'), + url(r'^logout/$', views.logout, name='account_logout'), + url(r'^signup/$', views.signup, name='account_signup'), + url(r'^password/reset/$', views.password_reset, + name='account_reset_password'), + url(r'^password/reset/done/$', django_views.password_reset_done, + kwargs={'template_name': 'account/password_reset_done.html'}, + name='account_reset_password_done'), + url(r'^password/reset/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', # noqa + views.password_reset_confirm, name='account_reset_password_confirm'), + url(r'password/reset/complete/$', django_views.password_reset_complete, + kwargs={'template_name': 'account/password_reset_from_key_done.html'}, + name='account_reset_password_complete'), ] diff --git a/saleor/userprofile/registration/views.py b/saleor/userprofile/registration/views.py index ef891d1e..b56ae7d8 100644 --- a/saleor/userprofile/registration/views.py +++ b/saleor/userprofile/registration/views.py @@ -7,7 +7,7 @@ from django.utils.translation import ugettext_lazy as _ from django.template.response import TemplateResponse from ...cart.utils import find_and_assign_anonymous_cart -from .forms import LoginForm, SignupForm +from .forms import LoginForm, SignupForm, SetPasswordForm @find_and_assign_anonymous_cart() @@ -35,3 +35,25 @@ def signup(request): return redirect(settings.LOGIN_REDIRECT_URL) ctx = {'form': form} return TemplateResponse(request, 'account/signup.html', ctx) + + +def password_reset(request): + template_name = 'account/password_reset.html' + post_reset_redirect = 'account_reset_password_done' + email_template_name = 'account/email/password_reset_message.txt' + subject_template_name = 'account/email/password_reset_subject.txt' + return django_views.password_reset( + request, template_name=template_name, + post_reset_redirect=post_reset_redirect, + email_template_name=email_template_name, + subject_template_name=subject_template_name) + + +def password_reset_confirm(request, uidb64=None, token=None): + template_name = 'account/password_reset_from_key.html' + post_reset_redirect = 'account_reset_password_complete' + set_password_form = SetPasswordForm + return django_views.password_reset_confirm( + request, uidb64=uidb64, token=token, template_name=template_name, + post_reset_redirect=post_reset_redirect, + set_password_form=set_password_form) |