Code simplification.
Mostly just returning quickly instead of setting a variable and returning that later in the code.
This commit is contained in:
parent
31a1694ba7
commit
460cd0265f
@ -41,11 +41,11 @@ def validate(token):
|
|||||||
except requests.exceptions.ConnectionError as e:
|
except requests.exceptions.ConnectionError as e:
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
if r.status_code == 200:
|
if r.status_code != 200:
|
||||||
response = r.json()
|
print('HTTP error %i validating token:\n%s' % (r.status_code, r.content))
|
||||||
else:
|
return None
|
||||||
response = None
|
|
||||||
return response
|
return r.json()
|
||||||
|
|
||||||
|
|
||||||
def validate_token():
|
def validate_token():
|
||||||
@ -70,63 +70,63 @@ def validate_token():
|
|||||||
# to verify the validity of the token. We will get basic user info if
|
# 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.
|
# the user is authorized and we will make a new token.
|
||||||
validation = validate(token)
|
validation = validate(token)
|
||||||
if validation['status'] == 'success':
|
if validation is None or 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:
|
|
||||||
return None
|
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:
|
else:
|
||||||
users = app.data.driver.db['users']
|
users = app.data.driver.db['users']
|
||||||
db_user = users.find_one(db_token['user'])
|
db_user = users.find_one(db_token['user'])
|
||||||
@ -136,5 +136,5 @@ def validate_token():
|
|||||||
groups=db_user['groups'],
|
groups=db_user['groups'],
|
||||||
token_expire_time=db_token['expire_time'])
|
token_expire_time=db_token['expire_time'])
|
||||||
|
|
||||||
setattr(g, 'current_user', current_user)
|
g.current_user = current_user
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user