Spaces:
Sleeping
Sleeping
from typing import Any, Union | |
from litellm.proxy._types import ( | |
GenerateKeyRequest, | |
LiteLLM_ManagementEndpoint_MetadataFields_Premium, | |
LiteLLM_TeamTable, | |
LitellmUserRoles, | |
UserAPIKeyAuth, | |
) | |
from litellm.proxy.utils import _premium_user_check | |
def _user_has_admin_view(user_api_key_dict: UserAPIKeyAuth) -> bool: | |
return ( | |
user_api_key_dict.user_role == LitellmUserRoles.PROXY_ADMIN | |
or user_api_key_dict.user_role == LitellmUserRoles.PROXY_ADMIN_VIEW_ONLY | |
) | |
def _is_user_team_admin( | |
user_api_key_dict: UserAPIKeyAuth, team_obj: LiteLLM_TeamTable | |
) -> bool: | |
for member in team_obj.members_with_roles: | |
if ( | |
member.user_id is not None and member.user_id == user_api_key_dict.user_id | |
) and member.role == "admin": | |
return True | |
return False | |
def _set_object_metadata_field( | |
object_data: Union[LiteLLM_TeamTable, GenerateKeyRequest], | |
field_name: str, | |
value: Any, | |
) -> None: | |
""" | |
Helper function to set metadata fields that require premium user checks | |
Args: | |
object_data: The team data object to modify | |
field_name: Name of the metadata field to set | |
value: Value to set for the field | |
""" | |
if field_name in LiteLLM_ManagementEndpoint_MetadataFields_Premium: | |
_premium_user_check() | |
object_data.metadata = object_data.metadata or {} | |
object_data.metadata[field_name] = value | |