From 6f51eb1baecbc291e6043afd959bf63c3acb835a Mon Sep 17 00:00:00 2001 From: Ben Adida <ben@adida.net> Date: Sat, 28 May 2016 23:25:08 +0000 Subject: [PATCH] add better error handling of edge cases that are causing the most errors --- helios/views.py | 4 ++-- helios_auth/auth_systems/google.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/helios/views.py b/helios/views.py index 3353701..08c3e6c 100644 --- a/helios/views.py +++ b/helios/views.py @@ -524,7 +524,7 @@ def one_election_cast(request, election): if request.method == "GET": return HttpResponseRedirect("%s%s" % (settings.SECURE_URL_HOST, reverse(one_election_view, args = [election.uuid]))) - user = get_user(request) + user = get_user(request) encrypted_vote = request.POST['encrypted_vote'] save_in_session_across_logouts(request, 'encrypted_vote', encrypted_vote) @@ -592,7 +592,7 @@ def one_election_cast_confirm(request, election): user = get_user(request) # if no encrypted vote, the user is reloading this page or otherwise getting here in a bad way - if not request.session.has_key('encrypted_vote'): + if (not request.session.has_key('encrypted_vote')) or request.session['encrypted_vote'] == None: return HttpResponseRedirect(settings.URL_HOST) # election not frozen or started diff --git a/helios_auth/auth_systems/google.py b/helios_auth/auth_systems/google.py index 2bdd38c..b6eb57c 100644 --- a/helios_auth/auth_systems/google.py +++ b/helios_auth/auth_systems/google.py @@ -33,8 +33,10 @@ def get_auth_url(request, redirect_url): def get_user_info_after_auth(request): flow = get_flow(request.session['google-redirect-url']) - del request.session['google-redirect-url'] + if not request.GET.has_key('code'): + return None + code = request.GET['code'] credentials = flow.step2_exchange(code) -- GitLab