Spaces:
Configuration error
Configuration error
File size: 1,543 Bytes
447ebeb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
"""
Enterprise internal user management endpoints
"""
from fastapi import APIRouter, Depends, HTTPException
from litellm.proxy._types import UserAPIKeyAuth
from litellm.proxy.management_endpoints.internal_user_endpoints import user_api_key_auth
router = APIRouter()
@router.get(
"/user/available_users",
tags=["Internal User management"],
dependencies=[Depends(user_api_key_auth)],
)
async def available_enterprise_users(
user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),
):
"""
For keys with `max_users` set, return the list of users that are allowed to use the key.
"""
from litellm.proxy._types import CommonProxyErrors
from litellm.proxy.proxy_server import (
premium_user,
premium_user_data,
prisma_client,
)
if prisma_client is None:
raise HTTPException(
status_code=500,
detail={"error": CommonProxyErrors.db_not_connected_error.value},
)
if premium_user is None:
raise HTTPException(
status_code=500, detail={"error": CommonProxyErrors.not_premium_user.value}
)
# Count number of rows in LiteLLM_UserTable
user_count = await prisma_client.db.litellm_usertable.count()
return {
"total_users": premium_user_data.get("max_users")
if premium_user_data
else None,
"total_users_used": user_count,
"total_users_remaining": premium_user_data.get("max_users", 0) - user_count
if premium_user_data
else None,
}
|