Pro-Badge im Profil: zeigt jetzt korrekten Tier statt veraltetem is_premium

- settings.js Header-Badge unter dem Namen leitet jetzt aus
  subscription_tier ab (analog _tierCard / has_pro_access): Admin/
  Moderator, Züchter, Pro, sonst 'Kostenlos'. Vorher las nur das alte
  is_premium-Flag, was beim Admin-Upgrade nicht mitgezogen wurde.
- admin.py fulfill_upgrade_request setzt jetzt is_premium synchron mit
  subscription_tier (1 für pro/breeder, sonst 0). Hält Login-Response,
  /auth/me und Reports konsistent.
This commit is contained in:
rene 2026-05-30 18:10:57 +02:00
parent 8d2cc279ae
commit 4cfce1051f
7 changed files with 49 additions and 23 deletions

View file

@ -1216,10 +1216,14 @@ async def fulfill_upgrade_request(req_id: int, user=Depends(require_admin)):
raise HTTPException(400, "Ungültiger Tier.")
from datetime import timedelta
expires_at = (datetime.now(_TZ) + timedelta(days=365)).strftime('%Y-%m-%dT%H:%M:%SZ')
# is_premium-Flag synchron halten: 1 für pro/breeder, sonst 0.
# Sonst zeigt das Frontend „Kostenlos"-Badge obwohl Tier upgraded
# ist (Settings-Header las is_premium statt subscription_tier).
_is_prem = 1 if req["tier"] in ("pro", "breeder") else 0
conn.execute(
"""UPDATE users SET subscription_tier=?, subscription_expires_at=?,
subscription_cancelled_at=NULL WHERE id=?""",
(req["tier"], expires_at, req["user_id"])
subscription_cancelled_at=NULL, is_premium=? WHERE id=?""",
(req["tier"], expires_at, _is_prem, req["user_id"])
)
conn.execute(
"UPDATE upgrade_requests SET fulfilled_at=strftime('%Y-%m-%dT%H:%M:%fZ','now'), fulfilled_by=? WHERE id=?",