From 460cd0265f945188db234b1c4368e73ecacba051 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Fri, 4 Mar 2016 12:14:33 +0100 Subject: [PATCH] Code simplification. Mostly just returning quickly instead of setting a variable and returning that later in the code. --- pillar/application/utils/authentication.py | 124 ++++++++++----------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/pillar/application/utils/authentication.py b/pillar/application/utils/authentication.py index 9a3cab23..819334c3 100644 --- a/pillar/application/utils/authentication.py +++ b/pillar/application/utils/authentication.py @@ -41,11 +41,11 @@ def validate(token): except requests.exceptions.ConnectionError as e: raise e - if r.status_code == 200: - response = r.json() - else: - response = None - return response + if r.status_code != 200: + print('HTTP error %i validating token:\n%s' % (r.status_code, r.content)) + return None + + return r.json() def validate_token(): @@ -70,63 +70,63 @@ def validate_token(): # to verify the validity of the token. We will get basic user info if # the user is authorized and we will make a new token. validation = validate(token) - if validation['status'] == 'success': - users = app.data.driver.db['users'] - email = validation['data']['user']['email'] - db_user = users.find_one({'email': email}) - # Ensure unique username - username = email.split('@')[0] - def make_unique_username(username, index=1): - """Ensure uniqueness of a username by appending an incremental - digit at the end of it. - """ - user_from_username = users.find_one({'username': username}) - if user_from_username: - if index > 1: - index += 1 - username = username[:-1] - username = "{0}{1}".format(username, index) - return make_unique_username(username, index=index) - return username - # Check for min length of username (otherwise validation fails) - username = "___{0}".format(username) if len(username) < 3 else username - username = make_unique_username(username) - - full_name = username - if not db_user: - user_data = { - 'full_name': full_name, - 'username': username, - 'email': email, - 'auth': [{ - 'provider': 'blender-id', - 'user_id': str(validation['data']['user']['id']), - 'token': ''}], - 'settings': { - 'email_communications': 1 - } - } - r = post_internal('users', user_data) - user_id = r[0]['_id'] - groups = None - else: - user_id = db_user['_id'] - groups = db_user['groups'] - - token_data = { - 'user': user_id, - 'token': token, - 'expire_time': datetime.now() + timedelta(hours=1) - } - post_internal('tokens', token_data) - current_user = dict( - user_id=user_id, - token=token, - groups=groups, - token_expire_time=datetime.now() + timedelta(hours=1)) - #return token_data - else: + if validation is None or validation['status'] != 'success': return None + + users = app.data.driver.db['users'] + email = validation['data']['user']['email'] + db_user = users.find_one({'email': email}) + # Ensure unique username + username = email.split('@')[0] + def make_unique_username(username, index=1): + """Ensure uniqueness of a username by appending an incremental + digit at the end of it. + """ + user_from_username = users.find_one({'username': username}) + if user_from_username: + if index > 1: + index += 1 + username = username[:-1] + username = "{0}{1}".format(username, index) + return make_unique_username(username, index=index) + return username + # Check for min length of username (otherwise validation fails) + username = "___{0}".format(username) if len(username) < 3 else username + username = make_unique_username(username) + + full_name = username + if not db_user: + user_data = { + 'full_name': full_name, + 'username': username, + 'email': email, + 'auth': [{ + 'provider': 'blender-id', + 'user_id': str(validation['data']['user']['id']), + 'token': ''}], + 'settings': { + 'email_communications': 1 + } + } + r = post_internal('users', user_data) + user_id = r[0]['_id'] + groups = None + else: + user_id = db_user['_id'] + groups = db_user['groups'] + + token_data = { + 'user': user_id, + 'token': token, + 'expire_time': datetime.now() + timedelta(hours=1) + } + post_internal('tokens', token_data) + current_user = dict( + user_id=user_id, + token=token, + groups=groups, + token_expire_time=datetime.now() + timedelta(hours=1)) + #return token_data else: users = app.data.driver.db['users'] db_user = users.find_one(db_token['user']) @@ -136,5 +136,5 @@ def validate_token(): groups=db_user['groups'], token_expire_time=db_token['expire_time']) - setattr(g, 'current_user', current_user) + g.current_user = current_user