Skip to content
Snippets Groups Projects
Commit 9a2523e4 authored by Ben Adida's avatar Ben Adida
Browse files

added explanation of why we ask for rights when someone says no

parent cd95e88c
No related branches found
No related tags found
No related merge requests found
......@@ -32,6 +32,9 @@ def get_auth_url(request, redirect_url):
def get_user_info_after_auth(request):
data = view_helpers.finish_openid(request.session, request.GET, request.session['google_redirect_url'])
if not data.has_key('ax'):
return None
email = data['ax']['email'][0]
# do we have a firstname/lastname?
......
......@@ -17,6 +17,7 @@ urlpatterns = patterns('',
(r'^start/(?P<system_name>.*)$', start),
# weird facebook constraint for trailing slash
(r'^after/$', after),
(r'^why$', perms_why),
(r'^after_intervention$', after_intervention),
## should make the following modular
......
......@@ -16,7 +16,7 @@ from auth_systems import AUTH_SYSTEMS
from auth_systems import password
import auth
import copy
import copy, urllib
from models import User
......@@ -137,6 +137,22 @@ def logout(request):
return HttpResponseRedirect(return_url)
def _do_auth(request):
# the session has the system name
system_name = request.session['auth_system_name']
# get the system
system = AUTH_SYSTEMS[system_name]
# where to send the user to?
redirect_url = "%s%s" % (settings.SECURE_URL_HOST,reverse(after))
auth_url = system.get_auth_url(request, redirect_url=redirect_url)
if auth_url:
return HttpResponseRedirect(auth_url)
else:
return HttpResponse("an error occurred trying to contact " + system_name +", try again later")
def start(request, system_name):
if not (system_name in auth.ENABLED_AUTH_SYSTEMS):
return HttpResponseRedirect(reverse(index))
......@@ -150,17 +166,13 @@ def start(request, system_name):
# where to return to when done
request.session['auth_return_url'] = request.GET.get('return_url', '/')
# get the system
system = AUTH_SYSTEMS[system_name]
return _do_auth(request)
# where to send the user to?
redirect_url = "%s%s" % (settings.SECURE_URL_HOST,reverse(after))
auth_url = system.get_auth_url(request, redirect_url=redirect_url)
def perms_why(request):
if request.method == "GET":
return render_template(request, "perms_why")
if auth_url:
return HttpResponseRedirect(auth_url)
else:
return HttpResponse("an error occurred trying to contact " + system_name +", try again later")
return _do_auth(request)
def after(request):
# which auth system were we using?
......@@ -179,8 +191,7 @@ def after(request):
request.session['user'] = user
else:
# we were logging out
pass
return HttpResponseRedirect("%s?%s" % (reverse(perms_why), urllib.urlencode({'system_name' : request.session['auth_system_name']})))
# does the auth system want to present an additional view?
# this is, for example, to prompt the user to follow @heliosvoting
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment