summaryrefslogtreecommitdiff
path: root/saleor/userprofile
diff options
context:
space:
mode:
authorMira Szewczyk <szewczyk.mira@gmail.com>2017-02-17 14:47:41 +0100
committerMira Szewczyk <szewczyk.mira@gmail.com>2017-03-15 12:32:05 +0100
commit99631b6036f99b25bca5614b078c50c350371d44 (patch)
tree15bb8af45759780604a3173c0d7c863c1ff3d1f3 /saleor/userprofile
parent455dfbc47fec359012d9757810e9cda5eeb9ce16 (diff)
downloadsaleor-frontend-99631b6036f99b25bca5614b078c50c350371d44.tar.gz
saleor-frontend-99631b6036f99b25bca5614b078c50c350371d44.tar.bz2
saleor-frontend-99631b6036f99b25bca5614b078c50c350371d44.zip
Add login and logout views
Diffstat (limited to 'saleor/userprofile')
-rw-r--r--saleor/userprofile/registration/__init__.py0
-rw-r--r--saleor/userprofile/registration/forms.py15
-rw-r--r--saleor/userprofile/registration/urls.py9
-rw-r--r--saleor/userprofile/registration/views.py26
4 files changed, 50 insertions, 0 deletions
diff --git a/saleor/userprofile/registration/__init__.py b/saleor/userprofile/registration/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/saleor/userprofile/registration/__init__.py
diff --git a/saleor/userprofile/registration/forms.py b/saleor/userprofile/registration/forms.py
new file mode 100644
index 00000000..1b8115f4
--- /dev/null
+++ b/saleor/userprofile/registration/forms.py
@@ -0,0 +1,15 @@
+from django import forms
+from django.contrib.auth.forms import AuthenticationForm
+from django.utils.translation import pgettext
+
+
+class LoginForm(AuthenticationForm):
+ username = forms.EmailField(
+ label=pgettext('Form field', 'Email'), max_length=75)
+
+ def __init__(self, request=None, *args, **kwargs):
+ super(LoginForm, self).__init__(request=request, *args, **kwargs)
+ if request:
+ email = request.GET.get('email')
+ if email:
+ self.fields['username'].initial = email
diff --git a/saleor/userprofile/registration/urls.py b/saleor/userprofile/registration/urls.py
new file mode 100644
index 00000000..adc48aa1
--- /dev/null
+++ b/saleor/userprofile/registration/urls.py
@@ -0,0 +1,9 @@
+from django.conf.urls import url
+
+from . import views
+
+
+urlpatterns = [
+ url(r'^login/$', views.login, name="account_login"),
+ url(r'^logout', views.logout, name="account_logout"),
+]
diff --git a/saleor/userprofile/registration/views.py b/saleor/userprofile/registration/views.py
new file mode 100644
index 00000000..f2b3510c
--- /dev/null
+++ b/saleor/userprofile/registration/views.py
@@ -0,0 +1,26 @@
+from django.conf import settings
+from django.contrib import messages, auth
+from django.contrib.auth import views as django_views
+from django.contrib.auth.decorators import login_required
+from django.shortcuts import redirect
+from django.utils.translation import ugettext_lazy as _
+
+from ...cart.utils import find_and_assign_anonymous_cart
+from .forms import LoginForm
+
+
+@find_and_assign_anonymous_cart()
+def login(request):
+ next_url = request.GET.get('next')
+ kwargs = {
+ 'template_name': 'account/login.html', 'authentication_form': LoginForm}
+ if next_url:
+ kwargs['redirect_authenticated_user'] = next_url
+ return django_views.login(request, **kwargs)
+
+
+@login_required
+def logout(request):
+ auth.logout(request)
+ messages.success(request, _('You have been successfully logged out.'))
+ return redirect(settings.LOGIN_REDIRECT_URL)