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() ).fetchone()
if not target: if not target:
raise HTTPException(404, "User nicht gefunden.") 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"]: if updates.get("is_founder") == 1 and not target["founder_number"]:
# Neue Gründer-Nummer zuweisen
total = conn.execute( total = conn.execute(
"SELECT COUNT(*) FROM users WHERE is_founder=1" "SELECT COUNT(*) FROM users WHERE is_founder=1"
).fetchone()[0] ).fetchone()[0]
if total >= FOUNDER_MAX: if total >= FOUNDER_MAX:
raise HTTPException(400, f"Alle {FOUNDER_MAX} Gründer-Plätze sind vergeben.") raise HTTPException(400, f"Alle {FOUNDER_MAX} Gründer-Plätze sind vergeben.")
updates["founder_number"] = total + 1 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) set_clause = ", ".join(f"{k}=?" for k in updates)
conn.execute( conn.execute(
f"UPDATE users SET {set_clause} WHERE id=?", f"UPDATE users SET {set_clause} WHERE id=?",

View file

@ -3,7 +3,7 @@
Router, State-Management, Navigation, Initialisierung. Router, State-Management, Navigation, Initialisierung.
============================================================ */ ============================================================ */
const APP_VER = '535'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VER = '536'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen
const APP_VERSION = '1.1.2'; // ← semantische Version, wird bei make release gesetzt const APP_VERSION = '1.1.2'; // ← semantische Version, wird bei make release gesetzt
const IS_STAGING = location.hostname === 'staging.banyaro.app'; const IS_STAGING = location.hostname === 'staging.banyaro.app';

View file

@ -3,7 +3,7 @@
Offline-Cache + Push Notifications + Tile-Cache Offline-Cache + Push Notifications + Tile-Cache
============================================================ */ ============================================================ */
const CACHE_VERSION = 'by-v558'; const CACHE_VERSION = 'by-v559';
const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_STATIC = `${CACHE_VERSION}-static`;
const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten
const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache