diff options
author | Mira Szewczyk <szewczyk.mira@gmail.com> | 2017-02-17 14:47:41 +0100 |
---|---|---|
committer | Mira Szewczyk <szewczyk.mira@gmail.com> | 2017-03-15 12:32:05 +0100 |
commit | 99631b6036f99b25bca5614b078c50c350371d44 (patch) | |
tree | 15bb8af45759780604a3173c0d7c863c1ff3d1f3 /saleor/userprofile | |
parent | 455dfbc47fec359012d9757810e9cda5eeb9ce16 (diff) | |
download | saleor-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__.py | 0 | ||||
-rw-r--r-- | saleor/userprofile/registration/forms.py | 15 | ||||
-rw-r--r-- | saleor/userprofile/registration/urls.py | 9 | ||||
-rw-r--r-- | saleor/userprofile/registration/views.py | 26 |
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) |