context user fix

This commit is contained in:
Igor Lobanov
2022-12-01 15:45:19 +01:00
parent 8464398aaf
commit 25924ac136
13 changed files with 190 additions and 174 deletions

View File

@@ -8,6 +8,7 @@ from starlette.responses import RedirectResponse
from transliterate import translit
from auth.authenticate import login_required
from auth.credentials import AuthCredentials
from auth.email import send_auth_email
from auth.identity import Identity, Password
from auth.jwtcodec import JWTCodec
@@ -24,22 +25,19 @@ from settings import SESSION_TOKEN_HEADER, FRONTEND_URL
@mutation.field("getSession")
@login_required
async def get_current_user(_, info):
context_user = info.context["request"].user
auth: AuthCredentials = info.context["request"].auth
token = info.context["request"].headers.get(SESSION_TOKEN_HEADER)
if context_user and token:
with local_session() as session:
user = session.query(User).where(User.id == context_user.user_id).one()
user.lastSeen = datetime.now(tz=timezone.utc)
session.commit()
with local_session() as session:
user = session.query(User).where(User.id == auth.user_id).one()
user.lastSeen = datetime.now(tz=timezone.utc)
session.commit()
return {
"token": token,
"user": user,
"news": await user_subscriptions(user.slug),
}
else:
raise Unauthorized("No session token present in request, try to login")
return {
"token": token,
"user": user,
"news": await user_subscriptions(user.id),
}
@mutation.field("confirmEmail")
@@ -60,7 +58,7 @@ async def confirm_email(_, info, token):
return {
"token": session_token,
"user": user,
"news": await user_subscriptions(user.slug)
"news": await user_subscriptions(user.id)
}
except InvalidToken as e:
raise InvalidToken(e.message)
@@ -176,7 +174,7 @@ async def login(_, info, email: str, password: str = "", lang: str = "ru"):
return {
"token": session_token,
"user": user,
"news": await user_subscriptions(user.slug),
"news": await user_subscriptions(user.id),
}
except InvalidPassword:
print(f"[auth] {email}: invalid password")