auth via DB

This commit is contained in:
JiriUhlir
2026-05-28 11:40:49 +02:00
parent db039e5988
commit 09c742fefb
11 changed files with 335 additions and 23 deletions
+7 -4
View File
@@ -1,9 +1,10 @@
import html
from pathlib import Path
from fastapi import APIRouter, Form
from fastapi import APIRouter, Depends, Form, Request
from fastapi.responses import HTMLResponse, RedirectResponse
from ..auth import require_user
from ..backups import is_backup_path, list_backups
from ..config import BACKUP_SCRIPT
from ..shell import run_command
@@ -13,7 +14,7 @@ router = APIRouter()
@router.get("/backups", response_class=HTMLResponse)
def backups_page():
def backups_page(request: Request, user=Depends(require_user)):
rows = ""
for path in list_backups():
@@ -86,11 +87,12 @@ def backups_page():
</table>
</div>
""",
user=user,
)
@router.post("/backups/create", response_class=HTMLResponse)
def create_backup():
def create_backup(user=Depends(require_user)):
result = run_command([BACKUP_SCRIPT])
status = "OK" if result.returncode == 0 else "FAILED"
@@ -98,11 +100,12 @@ def create_backup():
title=f"Vytvoření zálohy: {status}",
back_url="/portal/backups",
sections=[("Výstup", result.stdout), ("Chyba", result.stderr)],
user=user,
)
@router.post("/backups/delete")
def delete_backup(backup_path: str = Form(...)):
def delete_backup(backup_path: str = Form(...), user=Depends(require_user)):
target = Path(backup_path)
if not is_backup_path(target):