STAGING_MODE Env-Flag: kein Hard-Stop, kein Org-Switcher in Staging

Wenn STAGING_MODE=1 (oder true/yes) in der .env gesetzt ist:
- check_license() liefert immer unlimited_budget=True -> kein Token-Budget-Hard-Stop,
  egal was in der DB steht.
- /api/auth/me liefert is_global_admin=False -> Frontend ruft _initOrgSwitcher
  nicht auf, Org-Switcher-Section bleibt versteckt.

Nur in ~/AegisSight-Monitor-staging/.env gesetzt; Live-.env hat das Flag
nicht, daher dort unverändertes Produktiv-Verhalten.
Dieser Commit ist enthalten in:
Claude Code
2026-05-02 22:51:27 +00:00
Ursprung ee83f38edf
Commit 430541f49b
2 geänderte Dateien mit 26 neuen und 1 gelöschten Zeilen

Datei anzeigen

@@ -1,5 +1,6 @@
"""Lizenz-Verwaltung und -Pruefung."""
import logging
import os
from datetime import datetime
from config import TIMEZONE
import aiosqlite
@@ -7,6 +8,15 @@ import aiosqlite
logger = logging.getLogger("osint.license")
def _staging_mode() -> bool:
"""Staging-Mode aktiv? Wenn ja, gilt: immer unlimited Budget, kein Hard-Stop.
Wird ueber ENV-Variable STAGING_MODE=1 (oder true) aktiviert.
Nur in Staging-.env gesetzt; Live-.env hat das Flag nicht.
"""
return os.environ.get("STAGING_MODE", "").lower() in ("1", "true", "yes")
async def check_license(db: aiosqlite.Connection, organization_id: int) -> dict:
"""Prueft den Lizenzstatus einer Organisation.
@@ -50,6 +60,10 @@ async def check_license(db: aiosqlite.Connection, organization_id: int) -> dict:
credits_total = lic_dict.get("credits_total")
credits_used = lic_dict.get("credits_used") or 0
# STAGING_MODE: kein Token-Budget-Hard-Stop, immer unlimited
if _staging_mode():
unlimited_budget = True
# Ablauf pruefen
now = datetime.now(TIMEZONE)
valid_until = license_row["valid_until"]