📝 🚀 "Refactor backend templates
This commit is contained in:
@ -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 =====
|
||||
|
||||
|
Reference in New Issue
Block a user