From 2748f374ac9b83fc01933f3a4089c38fe745d557 Mon Sep 17 00:00:00 2001 From: user Date: Tue, 12 Mar 2024 01:04:00 +0300 Subject: [PATCH] dev@locazia: fix misprint --- app/api/middleware.py | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/app/api/middleware.py b/app/api/middleware.py index b54d25b..cbade02 100644 --- a/app/api/middleware.py +++ b/app/api/middleware.py @@ -69,6 +69,23 @@ async def try_authorization(request): request.ctx.user_uploader_wrapper = Wrapped_CBotChat(request.app.ctx.memory._telegram_bot, chat_id=user.telegram_id, db_session=request.ctx.db_session) request.ctx.user_client_wrapper = Wrapped_CBotChat(request.app.ctx.memory._client_telegram_bot, chat_id=user.telegram_id, db_session=request.ctx.db_session) + +async def try_service_authorization(request): + signature = request.headers.get('X-Service-Signature') + if not signature: + return + + message_hash_b58 = request.headers.get('X-Message-Hash') + if not message_hash_b58: + return + + message_hash = b58decode(message_hash_b58) + signer = Signer(hot_seed) + if signer.verify(message_hash, signature): + request.ctx.verified_hash = message_hash + + +async def save_activity(request): activity_meta = {} try: activity_meta["path"] = request.path @@ -92,7 +109,7 @@ async def try_authorization(request): try: activity_meta["ip"] = (request.headers['X-Forwarded-for'] if 'X-Forwarded-for' in request.headers else None) \ - or request.remote_addr or request.ip + or request.remote_addr or request.ip activity_meta["ip"] = activity_meta["ip"].split(",")[0].strip() except: pass @@ -105,7 +122,7 @@ async def try_authorization(request): new_user_activity = UserActivity( type="API_V1_REQUEST", meta=activity_meta, - user_id=user.id, + user_id=request.ctx.user.id if request.ctx.user else None, user_ip=activity_meta.get("ip", "0.0.0.0"), created=datetime.now() ) @@ -113,21 +130,6 @@ async def try_authorization(request): request.ctx.db_session.commit() -async def try_service_authorization(request): - signature = request.headers.get('X-Service-Signature') - if not signature: - return - - message_hash_b58 = request.headers.get('X-Message-Hash') - if not message_hash_b58: - return - - message_hash = b58decode(message_hash_b58) - signer = Signer(hot_seed) - if signer.verify(message_hash, signature): - request.ctx.verified_hash = message_hash - - async def attach_user_to_request(request): if request.method == 'OPTIONS': return attach_headers(sanic_response.text("OK")) @@ -139,6 +141,7 @@ async def attach_user_to_request(request): request.ctx.user_uploader_wrapper = Wrapped_CBotChat(request.app.ctx.memory._telegram_bot, db_session=request.ctx.db_session) request.ctx.user_client_wrapper = Wrapped_CBotChat(request.app.ctx.memory._client_telegram_bot, db_session=request.ctx.db_session) await try_authorization(request) + await save_activity(request) await try_service_authorization(request)