From 82b6a5dfe2bf0e25e47fe226b184478ab33c45af Mon Sep 17 00:00:00 2001 From: Shahzeb Qureshi Date: Mon, 2 Apr 2018 13:09:20 +0530 Subject: [PATCH] login_success now returns appropriate messages --- .gitignore | 2 +- accountkitlogin/templates/success.html | 9 +++--- accountkitlogin/views.py | 39 +++++++++++++------------- django_accountkit/urls.py | 2 +- 4 files changed, 25 insertions(+), 27 deletions(-) diff --git a/.gitignore b/.gitignore index 73a78e0..a80e381 100644 --- a/.gitignore +++ b/.gitignore @@ -101,4 +101,4 @@ ENV/ .mypy_cache/ # Sqlite Database -.sqlite3 \ No newline at end of file +*.sqlite3 \ No newline at end of file diff --git a/accountkitlogin/templates/success.html b/accountkitlogin/templates/success.html index f5d3098..a0ef4fc 100644 --- a/accountkitlogin/templates/success.html +++ b/accountkitlogin/templates/success.html @@ -35,11 +35,10 @@

Response parameters

Logout diff --git a/accountkitlogin/views.py b/accountkitlogin/views.py index 714a8d5..b2d22ad 100644 --- a/accountkitlogin/views.py +++ b/accountkitlogin/views.py @@ -15,15 +15,20 @@ accountkit_secret = getattr(settings, 'ACCOUNT_KIT_APP_SECRET') accountkit_app_id = getattr(settings, 'APP_ID') -@csrf_exempt def login_status(request): - + code = request.GET.get('code') if request.GET.get('code', None) else request.POST.get('code', None) state = request.GET.get('state') if request.GET.get('state', None) else request.POST.get('state', None) status = request.GET.get('status') if request.GET.get('status', None) else request.POST.get('status', None) context = {} - if status != "PARTIALLY_AUTHENTICATED ": + if request.user.is_authenticated: + context['authenticated'] = True + context['message'] = "User with username %s is already logged in" % request.user.username + context['user'] = request.user + return context + + if status != "PARTIALLY_AUTHENTICATED": context['authenticated'] = False context['message'] = "Accountkit could not authenticate the user" context['user'] = None @@ -90,24 +95,18 @@ def login_status(request): context['user'] = None return context - if not request.user.is_authenticated: - login(request, user) - context['authenticated'] = True - context['message'] = "User with username %s logged in" % username - context['user'] = user - return context - else: - login(request, user) - context['authenticated'] = True - context['message'] = "User with username %s logged in" % username - context['user'] = user - return context - + login(request, user) + context['authenticated'] = True + context['message'] = "User with username %s logged in" % username + context['user'] = user + return context + + +@csrf_exempt +def success_page(request): + context = login_status(request) + return render(request, 'success.html', context) def login_view(request): context = {} - - context['api_version'] = api_version - context['accountkit_secret'] = accountkit_secret - context['accountkit_app_id'] = accountkit_app_id return render(request, 'index.html', context) diff --git a/django_accountkit/urls.py b/django_accountkit/urls.py index 86505a8..4d1684a 100644 --- a/django_accountkit/urls.py +++ b/django_accountkit/urls.py @@ -20,5 +20,5 @@ urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^$', login_view, name='login-view'), - url(r'^success$', login_status, name='success-view') + url(r'^success$', success_page, name='success-view') ]