Add admin panel, cart, checkout, and digital key delivery

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
orohi
2026-07-25 05:32:05 +03:00
co-authored by Cursor
parent 08cc4b0f1b
commit 54eaff4c70
32 changed files with 1982 additions and 105 deletions
+34
View File
@@ -0,0 +1,34 @@
from __future__ import annotations
import hashlib
import secrets
from fastapi import Request
from app.config import get_settings
def _secure_equal(left: str, right: str) -> bool:
left_digest = hashlib.sha256(left.encode("utf-8")).digest()
right_digest = hashlib.sha256(right.encode("utf-8")).digest()
return secrets.compare_digest(left_digest, right_digest)
def is_admin(request: Request) -> bool:
return bool(request.session.get("is_admin"))
def login_admin(request: Request, username: str, password: str) -> bool:
settings = get_settings()
if _secure_equal(username, settings.admin_username) and _secure_equal(
password, settings.admin_password
):
request.session["is_admin"] = True
request.session["admin_user"] = username
return True
return False
def logout_admin(request: Request) -> None:
request.session.pop("is_admin", None)
request.session.pop("admin_user", None)