The new user is added on authentication
This commit is contained in:
parent
b7b07ea922
commit
babdf807fb
@ -40,10 +40,11 @@ def validate(token):
|
|||||||
if r.status_code == 200:
|
if r.status_code == 200:
|
||||||
message = r.json()['message']
|
message = r.json()['message']
|
||||||
valid = r.json()['valid']
|
valid = r.json()['valid']
|
||||||
|
user = r.json()['user']
|
||||||
else:
|
else:
|
||||||
message = ""
|
message = ""
|
||||||
valid = False
|
valid = False
|
||||||
return dict(valid=valid, message=message)
|
return dict(valid=valid, message=message, user=user)
|
||||||
|
|
||||||
|
|
||||||
class TokensAuth(TokenAuth):
|
class TokensAuth(TokenAuth):
|
||||||
@ -51,17 +52,33 @@ class TokensAuth(TokenAuth):
|
|||||||
if not token:
|
if not token:
|
||||||
return False
|
return False
|
||||||
tokens = app.data.driver.db['tokens']
|
tokens = app.data.driver.db['tokens']
|
||||||
|
users = app.data.driver.db['users']
|
||||||
lookup = {'token': token, 'expire_time': {"$gt": datetime.now()}}
|
lookup = {'token': token, 'expire_time': {"$gt": datetime.now()}}
|
||||||
dbtoken = tokens.find_one(lookup)
|
dbtoken = tokens.find_one(lookup)
|
||||||
if not dbtoken:
|
if not dbtoken:
|
||||||
validation = validate(token)
|
validation = validate(token)
|
||||||
if validation['valid']:
|
if validation['valid']:
|
||||||
data = {
|
email = validation['user']['email']
|
||||||
'username': '',
|
dbuser = users.find_one({'email': email})
|
||||||
|
tmpname = email.split('@')[0]
|
||||||
|
if not dbuser:
|
||||||
|
user_data = {
|
||||||
|
'firstname': tmpname,
|
||||||
|
'lastname': tmpname,
|
||||||
|
'email': email,
|
||||||
|
'role': ['admin'],
|
||||||
|
}
|
||||||
|
r = post_internal('users', user_data)
|
||||||
|
user_id = r[0]["_id"]
|
||||||
|
else:
|
||||||
|
user_id = dbuser['_id']
|
||||||
|
|
||||||
|
token_data = {
|
||||||
|
'user': user_id,
|
||||||
'token': token,
|
'token': token,
|
||||||
'expire_time': datetime.now()+timedelta(hours=1)
|
'expire_time': datetime.now()+timedelta(hours=1)
|
||||||
}
|
}
|
||||||
post_internal('tokens', data)
|
post_internal('tokens', token_data)
|
||||||
else:
|
else:
|
||||||
return True
|
return True
|
||||||
return validation['valid']
|
return validation['valid']
|
||||||
|
@ -14,12 +14,17 @@ users_schema = {
|
|||||||
'firstname': {
|
'firstname': {
|
||||||
'type': 'string',
|
'type': 'string',
|
||||||
'minlength': 1,
|
'minlength': 1,
|
||||||
'maxlength': 10,
|
'maxlength': 60,
|
||||||
},
|
},
|
||||||
'lastname': {
|
'lastname': {
|
||||||
'type': 'string',
|
'type': 'string',
|
||||||
'minlength': 1,
|
'minlength': 1,
|
||||||
'maxlength': 15,
|
'maxlength': 60,
|
||||||
|
},
|
||||||
|
'email': {
|
||||||
|
'type': 'string',
|
||||||
|
'minlength': 1,
|
||||||
|
'maxlength': 60,
|
||||||
},
|
},
|
||||||
'role': {
|
'role': {
|
||||||
'type': 'list',
|
'type': 'list',
|
||||||
@ -103,8 +108,8 @@ node_types_schema = {
|
|||||||
|
|
||||||
|
|
||||||
tokens_schema = {
|
tokens_schema = {
|
||||||
'username': {
|
'user': {
|
||||||
'type': 'string',
|
'type': 'objectid',
|
||||||
'required': True,
|
'required': True,
|
||||||
},
|
},
|
||||||
'token': {
|
'token': {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user