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,7 +1,13 @@
"""Auth-Router: Magic-Link-Login und Nutzerverwaltung."""
import logging
import os
from datetime import datetime, timedelta
from fastapi import APIRouter, Depends, HTTPException, Request, status
def _staging_mode() -> bool:
"""STAGING_MODE Env-Flag (vgl. services.license_service)."""
return os.environ.get("STAGING_MODE", "").lower() in ("1", "true", "yes")
from models import (
MagicLinkRequest,
MagicLinkResponse,
@@ -203,6 +209,11 @@ async def get_me(
credits_remaining = max(0, int(credits_total - credits_used))
credits_percent_used = round((credits_used / credits_total) * 100, 1) if credits_total > 0 else 0
# STAGING_MODE: Org-Switcher im Frontend deaktivieren
is_global_admin_response = current_user.get("is_global_admin", False)
if _staging_mode():
is_global_admin_response = False
return UserMeResponse(
id=current_user["id"],
username=current_user["username"],
@@ -219,7 +230,7 @@ async def get_me(
read_only=license_info.get("read_only", False),
read_only_reason=license_info.get("read_only_reason"),
unlimited_budget=unlimited_budget,
is_global_admin=current_user.get("is_global_admin", False),
is_global_admin=is_global_admin_response,
)