diff --git a/backend/app/routers/admin.py b/backend/app/routers/admin.py index b91db8e..ebbf20b 100644 --- a/backend/app/routers/admin.py +++ b/backend/app/routers/admin.py @@ -1,5 +1,5 @@ import logging -from fastapi import APIRouter, Depends, HTTPException, status +from fastapi import APIRouter, Depends, HTTPException, Request, status from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy import select, delete @@ -16,16 +16,18 @@ settings = get_settings() @router.post("/login") -async def admin_login(body: dict): +async def admin_login(body: dict, request: Request): username = body.get("username", "") password = body.get("password", "") if username != settings.admin_username or password != settings.admin_password: logger.warning("Failed super-admin login attempt for username=%s", username) raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid admin credentials") token = create_admin_token({"sub": "admin"}) + ip = request.headers.get("X-Forwarded-For", request.client.host if request.client else "unknown").split(",")[0].strip() + ua = request.headers.get("User-Agent", "unknown") await notify( - title="Super Admin Login", - message=f"Admin logged in as: {username}", + title="Homeschool Dashboard Super Admin Login", + message=f"User: {username}\nIP: {ip}\nUA: {ua}", priority="high", tags=["key"], )