Backups können gelöscht werden

Dieser Commit ist enthalten in:
2025-06-10 00:10:17 +02:00
Ursprung dfd6b72173
Commit 7f9849d879
6 geänderte Dateien mit 86 neuen und 4 gelöschten Zeilen

Datei anzeigen

@@ -3024,6 +3024,62 @@ def download_backup(backup_id):
return send_file(filepath, as_attachment=True, download_name=filename)
@app.route("/backup/delete/<int:backup_id>", methods=["DELETE"])
@login_required
def delete_backup(backup_id):
"""Löscht ein Backup"""
conn = get_connection()
cur = conn.cursor()
try:
# Backup-Informationen abrufen
cur.execute("""
SELECT filename, filepath
FROM backup_history
WHERE id = %s
""", (backup_id,))
backup_info = cur.fetchone()
if not backup_info:
return jsonify({
'success': False,
'message': 'Backup nicht gefunden'
}), 404
filename, filepath = backup_info
filepath = Path(filepath)
# Datei löschen, wenn sie existiert
if filepath.exists():
filepath.unlink()
# Aus Datenbank löschen
cur.execute("""
DELETE FROM backup_history
WHERE id = %s
""", (backup_id,))
conn.commit()
# Audit-Log
log_audit('DELETE', 'backup', backup_id,
additional_info=f"Backup gelöscht: {filename}")
return jsonify({
'success': True,
'message': f'Backup "{filename}" wurde erfolgreich gelöscht'
})
except Exception as e:
conn.rollback()
return jsonify({
'success': False,
'message': f'Fehler beim Löschen des Backups: {str(e)}'
}), 500
finally:
cur.close()
conn.close()
@app.route("/security/blocked-ips")
@login_required
def blocked_ips():