Coverage for .venv/lib/python3.13/site-packages/litellm/proxy/auth/roles.py: 95%
20 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:01 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:01 +0000
1from __future__ import annotations
3from enum import Enum
4from typing import Final
7class Role(str, Enum):
8 PLATFORM_ADMIN = "platform_admin"
9 PLATFORM_VIEWER = "platform_viewer"
10 ORG_ADMIN = "org_admin"
11 ORG_VIEWER = "org_viewer"
12 TEAM_ADMIN = "team_admin"
13 TEAM_MEMBER = "team_member"
16class TeamRole(str, Enum):
17 ADMIN = "admin"
18 MEMBER = "member"
21_ROLE_MAP: Final[dict[str, Role]] = {
22 "proxy_admin": Role.PLATFORM_ADMIN,
23 "proxy_admin_viewer": Role.PLATFORM_VIEWER,
24 "org_admin": Role.ORG_ADMIN,
25}
28def map_role(value: str | None) -> Role | None:
29 """Map a LiteLLM ``user_role`` string to a platform Role."""
30 if value is None:
31 return None
32 return _ROLE_MAP.get(value)
35def team_role(role: str | None) -> TeamRole:
36 return TeamRole.ADMIN if role == "admin" else TeamRole.MEMBER