From 9aa4bb6063b7195586ed01f87fe842b6295c89be Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Mon, 4 Sep 2017 12:31:08 +0200 Subject: [PATCH] Don't fail on creating new oauth accounts with no first/last name If no first or last name is given, fall back to the method of using the email address to suggest only. In passing, split out the references to the session in own variables to make the code a lot easier to read. --- pgweb/account/views.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/pgweb/account/views.py b/pgweb/account/views.py index 45c72572..d4708983 100644 --- a/pgweb/account/views.py +++ b/pgweb/account/views.py @@ -371,13 +371,19 @@ def signup_oauth(request): else: # Generate possible new username suggested_username = request.session['oauth_email'].replace('@', '.')[:30] - for u in itertools.chain([ - u"{0}{1}".format(request.session['oauth_firstname'].lower(), request.session['oauth_lastname'][0].lower()), - u"{0}{1}".format(request.session['oauth_firstname'][0].lower(), request.session['oauth_lastname'].lower()), - ], (u"{0}{1}{2}".format(request.session['oauth_firstname'].lower(), request.session['oauth_lastname'][0].lower(), n) for n in xrange(100))): - if not User.objects.filter(username=u[:30]).exists(): - suggested_username = u[:30] - break + + # Auto generation requires firstnamea and lastname to be specified + f = request.session['oauth_firstname'].lower() + l = request.session['oauth_lastname'].lower() + if f and l: + for u in itertools.chain([ + u"{0}{1}".format(f, l[0]), + u"{0}{1}".format(f[0], l), + ], (u"{0}{1}{2}".format(f, l[0], n) for n in xrange(100))): + if not User.objects.filter(username=u[:30]).exists(): + suggested_username = u[:30] + break + form = SignupOauthForm(initial={ 'username': suggested_username, 'email': request.session['oauth_email'], -- 2.39.5