From 90203c89374b4d25c4b896de2d64edac13936c41 Mon Sep 17 00:00:00 2001 From: Shroominic Date: Mon, 5 May 2025 12:28:19 +0800 Subject: [PATCH] wip admin dashboard --- router/admin.py | 92 +++++++++++++++++++++++++++++++++++++++++++++++++ router/main.py | 2 ++ 2 files changed, 94 insertions(+) create mode 100644 router/admin.py diff --git a/router/admin.py b/router/admin.py new file mode 100644 index 00000000..4837e18d --- /dev/null +++ b/router/admin.py @@ -0,0 +1,92 @@ +import os +from fastapi import APIRouter, Request +from fastapi.responses import HTMLResponse + +admin_router = APIRouter(prefix="/admin") + + +def login_form() -> str: + return """ + + + + + + +
+ + +
+ + + """ + + +def info(content: str) -> str: + return f""" + + + + + +
+ {content} +
+ + + """ + +def admin_auth() -> str: + if os.getenv("ADMIN_PASSWORD", "") == "": + return info("Please set a secure ADMIN_PASSWORD= in your ENV variables.") + else: + return login_form() + + +def dashboard(request: Request) -> str: + return info("Admin dashboard") + + +@admin_router.get("/", response_class=HTMLResponse) +async def admin(request: Request): + admin_cookie = request.cookies.get("admin_password") + if admin_cookie and admin_cookie == os.getenv("ADMIN_PASSWORD"): + return dashboard(request) + return admin_auth() diff --git a/router/main.py b/router/main.py index e6d10352..7ae8e71d 100644 --- a/router/main.py +++ b/router/main.py @@ -4,6 +4,7 @@ from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from .db import init_db +from .admin import admin_router from .proxy import proxy_router from .account import account_router from .cashu import _initialize_wallet @@ -42,6 +43,7 @@ async def info(): } +app.include_router(admin_router) app.include_router(account_router) app.include_router(proxy_router)