The new user is added on authentication

This commit is contained in:
Eibriel 2015-04-09 19:06:10 -03:00
parent b7b07ea922
commit babdf807fb
2 changed files with 30 additions and 8 deletions

View File

@ -40,10 +40,11 @@ def validate(token):
if r.status_code == 200:
message = r.json()['message']
valid = r.json()['valid']
user = r.json()['user']
else:
message = ""
valid = False
return dict(valid=valid, message=message)
return dict(valid=valid, message=message, user=user)
class TokensAuth(TokenAuth):
@ -51,17 +52,33 @@ class TokensAuth(TokenAuth):
if not token:
return False
tokens = app.data.driver.db['tokens']
users = app.data.driver.db['users']
lookup = {'token': token, 'expire_time': {"$gt": datetime.now()}}
dbtoken = tokens.find_one(lookup)
if not dbtoken:
validation = validate(token)
if validation['valid']:
data = {
'username': '',
email = validation['user']['email']
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,
'expire_time': datetime.now()+timedelta(hours=1)
}
post_internal('tokens', data)
post_internal('tokens', token_data)
else:
return True
return validation['valid']

View File

@ -14,12 +14,17 @@ users_schema = {
'firstname': {
'type': 'string',
'minlength': 1,
'maxlength': 10,
'maxlength': 60,
},
'lastname': {
'type': 'string',
'minlength': 1,
'maxlength': 15,
'maxlength': 60,
},
'email': {
'type': 'string',
'minlength': 1,
'maxlength': 60,
},
'role': {
'type': 'list',
@ -103,8 +108,8 @@ node_types_schema = {
tokens_schema = {
'username': {
'type': 'string',
'user': {
'type': 'objectid',
'required': True,
},
'token': {