fixing auth for token

This commit is contained in:
Cayo Puigdefabregas 2021-04-15 21:19:20 +02:00
parent b3d77ba212
commit e1f8f89a9b
1 changed files with 7 additions and 2 deletions

View File

@ -3,12 +3,17 @@ from teal.auth import TokenAuth
from teal.db import ResourceNotFound
from werkzeug.exceptions import Unauthorized
from ereuse_devicehub.resources.user.models import User
from ereuse_devicehub.resources.user.models import User, Session
class Auth(TokenAuth):
def authenticate(self, token: str, *args, **kw) -> User:
try:
return User.query.filter_by(token=token).one()
user = User.query.filter_by(token=token).first()
if user:
return user
ses = Session.query.filter_by(token=token).one()
return ses.user
except (ResourceNotFound, DataError):
raise Unauthorized('Provide a suitable token.')