fix of a missing import

This commit is contained in:
2026-08-28 14:23:35 +02:00
parent 0ee05d55f4
commit d81972e788
+17 -2
View File
@@ -34,6 +34,7 @@ from server_steering import Instance
from datetime import timezone, datetime
import string
import traceback
import io
app = Flask(__name__)
app.secret_key = "ASDfhbsdfseiufhgildsrfrjg874368546987s6e8468f4!?FAUS/&s"
@@ -2750,25 +2751,39 @@ def view_hauptvertrag(invoice_id):
flash("Kein Hauptvertrag für diese Rechnung vorhanden.", "error")
return redirect(url_for("my_invoices"))
# Sicherheitsprüfung: Darf der Nutzer die Datei sehen? (Nutzer selbst oder Admin)
# Sicherheitsprüfung
current_user = session.get("username")
is_admin = session.get("is_admin")
if invoice.get("username") != current_user and not is_admin:
flash("Keine Berechtigung zum Anschauen dieses Hauptvertrags.", "error")
return redirect(url_for("my_invoices"))
# Datei-Streams aus den Binärdaten in MongoDB erzeugen
file_data = invoice["hauptvertrag_data"]
mimetype = invoice.get("hauptvertrag_mimetype", "application/pdf")
filename = invoice.get("hauptvertrag_filename", "hauptvertrag")
# Fallback für unterschiedliche Flask-Versionen (< 2.0 vs >= 2.0)
try:
return send_file(
io.BytesIO(file_data),
mimetype=mimetype,
as_attachment=False,
download_name=filename
)
except TypeError:
return send_file(
io.BytesIO(file_data),
mimetype=mimetype,
as_attachment=False,
attachment_filename=filename
)
except Exception as e:
# WICHTIG: Das schreibt den tatsächlichen Fehler in deine Docker-Logs!
import traceback
print(f"KRITISCHER FEHLER in view_hauptvertrag: {e}", flush=True)
traceback.print_exc()
flash("Fehler beim Abrufen der Datei aus der Datenbank.", "error")
return redirect(url_for("my_invoices"))
finally: