📝 🚀 "Refactor backend templates

This commit is contained in:
2025-06-01 01:41:52 +02:00
parent 20e81b11d3
commit dfad0937d1
15 changed files with 2760 additions and 1064 deletions

View File

@ -692,7 +692,7 @@ def api_callback():
username=user_data['username'],
email=user_data['email'],
name=user_data['name'],
is_admin=False,
role="user",
oauth_provider=provider,
oauth_id=str(user_data['id'])
)
@ -777,7 +777,7 @@ def api_callback():
username=user_data['username'],
email=user_data['email'],
name=user_data['name'],
is_admin=False,
role="user",
oauth_provider=provider,
oauth_id=str(user_data['id'])
)
@ -2570,6 +2570,45 @@ def admin_update_printer_form(printer_id):
flash("Fehler beim Aktualisieren des Druckers.", "error")
return redirect(url_for("admin_edit_printer_page", printer_id=printer_id))
@app.route("/api/admin/users/<int:user_id>", methods=["DELETE"])
@login_required
@admin_required
def delete_user(user_id):
"""Löscht einen Benutzer (nur für Admins)."""
# Verhindern, dass sich der Admin selbst löscht
if user_id == current_user.id:
return jsonify({"error": "Sie können sich nicht selbst löschen"}), 400
try:
db_session = get_db_session()
user = db_session.get(User, user_id)
if not user:
db_session.close()
return jsonify({"error": "Benutzer nicht gefunden"}), 404
# Prüfen, ob noch aktive Jobs für diesen Benutzer existieren
active_jobs = db_session.query(Job).filter(
Job.user_id == user_id,
Job.status.in_(["scheduled", "running"])
).count()
if active_jobs > 0:
db_session.close()
return jsonify({"error": f"Benutzer kann nicht gelöscht werden: {active_jobs} aktive Jobs vorhanden"}), 400
username = user.username or user.email
db_session.delete(user)
db_session.commit()
db_session.close()
user_logger.info(f"Benutzer '{username}' (ID: {user_id}) gelöscht von Admin {current_user.id}")
return jsonify({"success": True, "message": "Benutzer erfolgreich gelöscht"})
except Exception as e:
user_logger.error(f"Fehler beim Löschen des Benutzers {user_id}: {str(e)}")
return jsonify({"error": "Interner Serverfehler"}), 500
# ===== FILE-UPLOAD-ROUTEN =====