Skip to content

Commit 5ac2caf

Browse files
committed
fix: validate tier values returned from DB against UserTier enum
Unknown tier values in user_profiles or user_metadata now fall back to 'free' instead of passing through to the frontend unchecked. _VALID_TIERS set computed once at module level.
1 parent 3b58adb commit 5ac2caf

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

backend/routes/admin.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
router = APIRouter(prefix="/admin", tags=["Admin"])
1717

18+
_VALID_TIERS = {t.value for t in UserTier}
19+
1820
ADMIN_EMAILS = set(
1921
e.strip()
2022
for e in os.getenv("ADMIN_EMAILS", "").split(",")
@@ -87,7 +89,8 @@ def list_users(auth: AuthContext = Depends(require_admin)) -> dict:
8789
)
8890

8991
profile = profiles.get(uid, {})
90-
tier = profile.get("tier", meta.get("tier", "free"))
92+
raw_tier = profile.get("tier", meta.get("tier", "free"))
93+
tier = raw_tier if raw_tier in _VALID_TIERS else UserTier.FREE.value
9194

9295
users.append({
9396
"id": uid,

0 commit comments

Comments
 (0)