aboutsummaryrefslogtreecommitdiff
path: root/saleor/userprofile
diff options
context:
space:
mode:
authorMira Szewczyk <szewczyk.mira@gmail.com>2017-02-20 12:43:01 +0100
committerMira Szewczyk <szewczyk.mira@gmail.com>2017-03-15 12:32:05 +0100
commitc36a7167ff29a689a3d886c532cd16d5f5384e65 (patch)
tree629120ae8a9be55b8d178a84931fb5110fd87109 /saleor/userprofile
parentd6d4cb25f9f6d2a8455dcdc26e2190b8b45321eb (diff)
downloadsaleor-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.py11
-rw-r--r--saleor/userprofile/registration/urls.py18
-rw-r--r--saleor/userprofile/registration/views.py24
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)