From c1b1d6f35b7daa759e7bd318d3ef3fcae687c50e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IT=E7=8B=97?= Date: Tue, 21 Jul 2026 13:14:56 +0800 Subject: [PATCH] Add DELETE /api/admin/backup/{filename} and delete button in Settings --- backend/main.py | 13 +++++++++++++ frontend/src/pages/Settings.jsx | 16 ++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/backend/main.py b/backend/main.py index 08db882..eaa6e0a 100644 --- a/backend/main.py +++ b/backend/main.py @@ -1929,6 +1929,19 @@ async def restore_backup( return {"restored": filename, "auto_backup": auto_dst.name if src.exists() else None} +@app.delete("/api/admin/backup/{filename}") +async def delete_backup( + filename: str, + current_user: User = Depends(get_current_admin), +): + """Delete a backup file.""" + fp = BACKUP_DIR / filename + if not fp.exists() or ".." in filename: + raise HTTPException(status_code=404, detail="Backup not found") + fp.unlink() + return {"deleted": filename} + + @app.post("/api/admin/reset/{section}") async def reset_section( section: str, diff --git a/frontend/src/pages/Settings.jsx b/frontend/src/pages/Settings.jsx index 81651bd..42f99c2 100644 --- a/frontend/src/pages/Settings.jsx +++ b/frontend/src/pages/Settings.jsx @@ -218,6 +218,22 @@ export default function Settings() { > 還原 + ))