Reenabling tokens resource, using internal_post

This commit is contained in:
Eibriel 2015-04-09 16:36:32 -03:00
parent 6f011bab67
commit b7b07ea922
2 changed files with 16 additions and 10 deletions

View File

@ -8,6 +8,7 @@ from eve import Eve
from eve.auth import TokenAuth from eve.auth import TokenAuth
from eve.auth import BasicAuth from eve.auth import BasicAuth
from eve.io.mongo import Validator from eve.io.mongo import Validator
from eve.methods.post import post_internal
from bson import ObjectId from bson import ObjectId
from datetime import datetime from datetime import datetime
@ -50,7 +51,7 @@ 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']
lookup = {'token': token, 'updated': {"$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)
@ -58,9 +59,9 @@ class TokensAuth(TokenAuth):
data = { data = {
'username': '', 'username': '',
'token': token, 'token': token,
'updated': datetime.now()+timedelta(hours=1) 'expire_time': datetime.now()+timedelta(hours=1)
} }
tokens.insert(data) post_internal('tokens', data)
else: else:
return True return True
return validation['valid'] return validation['valid']
@ -89,7 +90,8 @@ class MyTokenAuth(BasicsAuth):
self.authorized_protected = BasicsAuth.authorized self.authorized_protected = BasicsAuth.authorized
def authorized(self, allowed_roles, resource, method): def authorized(self, allowed_roles, resource, method):
if resource == 'tokens': # if resource == 'tokens':
if False:
return self.authorized_protected( return self.authorized_protected(
self, allowed_roles, resource, method) self, allowed_roles, resource, method)
else: else:

View File

@ -102,7 +102,7 @@ node_types_schema = {
} }
"""tokens_schema = { tokens_schema = {
'username': { 'username': {
'type': 'string', 'type': 'string',
'required': True, 'required': True,
@ -110,8 +110,12 @@ node_types_schema = {
'token': { 'token': {
'type': 'string', 'type': 'string',
'required': True, 'required': True,
} },
}""" 'expire_time': {
'type': 'datetime',
'required': True,
},
}
nodes = { nodes = {
@ -145,20 +149,20 @@ users = {
'schema': users_schema 'schema': users_schema
} }
"""tokens = { tokens = {
'resource_methods': ['POST'], 'resource_methods': ['POST'],
# Allow 'token' to be returned with POST responses # Allow 'token' to be returned with POST responses
#'extra_response_fields': ['token'], #'extra_response_fields': ['token'],
'schema' : tokens_schema 'schema' : tokens_schema
}""" }
DOMAIN = { DOMAIN = {
'users': users, 'users': users,
'nodes': nodes, 'nodes': nodes,
'node_types': node_types, 'node_types': node_types,
# 'tokens': tokens, 'tokens': tokens,
} }
try: try: