diff --git a/auth/auth_systems/google.py b/auth/auth_systems/google.py index 847530be56dcc644a8053607226c7b77c8139565..02953a3fc765331b32da62aed995caf3e600cb2e 100644 --- a/auth/auth_systems/google.py +++ b/auth/auth_systems/google.py @@ -32,7 +32,15 @@ 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']) - return {'type' : 'google', 'user_id': data['ax']['email'][0], 'name': "%s %s" % (data['ax']['firstname'][0], data['ax']['lastname'][0]), 'info': {}, 'token':{}} + email = data['ax']['email'][0] + + # do we have a firstname/lastname? + if data['ax'].has_key('firstname') and data['ax'].has_key('lastname'): + name = "%s %s" % (data['ax']['firstname'][0], data['ax']['lastname'][0]) + else: + name = email + + return {'type' : 'google', 'user_id': email, 'name': name , 'info': {}, 'token':{}} def do_logout(user): """ diff --git a/helios/views.py b/helios/views.py index f47b8714d01d8c93a2de94bab307491988bf865d..d4dad1e9ae44e817337f5640bce04ac7e52d5dce 100644 --- a/helios/views.py +++ b/helios/views.py @@ -708,6 +708,10 @@ def one_election_questions(request, election): return render_template(request, 'election_questions', {'election': election, 'questions_json' : questions_json, 'admin_p': admin_p}) def _check_eligibility(election, user): + # prevent password-users from signing up willy-nilly for other elections, doesn't make sense + if user.user_type == 'password': + return False + return election.user_eligible_p(user) def _register_voter(election, user):