Fix: Grant is_founder=0 löscht founder_number; /me gibt is_founder zurück; DB direkt gefixt

This commit is contained in:
rene 2026-04-30 15:38:17 +02:00
parent 3373c19cdc
commit bb73ca801c
3 changed files with 6 additions and 3 deletions

View file

@ -92,14 +92,17 @@ def grant_user_status(user_id: int, data: GrantRequest, user=Depends(require_adm
).fetchone()
if not target:
raise HTTPException(404, "User nicht gefunden.")
# Beim manuellen Vergeben von is_founder: founder_number zuweisen wenn noch keine
if updates.get("is_founder") == 1 and not target["founder_number"]:
# Neue Gründer-Nummer zuweisen
total = conn.execute(
"SELECT COUNT(*) FROM users WHERE is_founder=1"
).fetchone()[0]
if total >= FOUNDER_MAX:
raise HTTPException(400, f"Alle {FOUNDER_MAX} Gründer-Plätze sind vergeben.")
updates["founder_number"] = total + 1
elif updates.get("is_founder") == 0:
# Gründer-Status entfernen → founder_number ebenfalls leeren
updates["founder_number"] = None
set_clause = ", ".join(f"{k}=?" for k in updates)
conn.execute(
f"UPDATE users SET {set_clause} WHERE id=?",