mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-09 22:31:41 +00:00
modernize /team/available endpoint, migrate link to UI
This commit is contained in:
parent
5a084cef41
commit
70ebdeec8b
3 changed files with 46 additions and 7 deletions
|
|
@ -3095,12 +3095,7 @@ async def list_available_teams(
|
|||
),
|
||||
)
|
||||
if available_teams is None:
|
||||
raise HTTPException(
|
||||
status_code=400,
|
||||
detail={
|
||||
"error": "No available teams for user to join. See how to set available teams here: https://docs.litellm.ai/docs/proxy/self_serve#all-settings-for-self-serve--sso-flow"
|
||||
},
|
||||
)
|
||||
return []
|
||||
|
||||
# filter out teams that the user is already a member of
|
||||
user_info = await prisma_client.db.litellm_usertable.find_unique(
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ from litellm.proxy.management_endpoints.team_endpoints import (
|
|||
_transform_teams_to_deleted_records,
|
||||
_validate_and_populate_member_user_info,
|
||||
delete_team,
|
||||
list_available_teams,
|
||||
router,
|
||||
team_member_add_duplication_check,
|
||||
team_member_delete,
|
||||
|
|
@ -5871,3 +5872,37 @@ async def test_validate_and_populate_member_user_info_only_user_id_not_found():
|
|||
mock_prisma_client.db.litellm_usertable.find_unique.assert_called_once_with(
|
||||
where={"user_id": "nonexistent-user"}
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_list_available_teams_returns_empty_list_when_none_configured():
|
||||
"""
|
||||
Test that /team/available returns an empty list when no available teams
|
||||
are configured, instead of raising an exception.
|
||||
"""
|
||||
import litellm
|
||||
|
||||
mock_request = MagicMock()
|
||||
mock_user_key = UserAPIKeyAuth(user_id="test-user", token="fake-token")
|
||||
|
||||
with patch(
|
||||
"litellm.proxy.proxy_server.prisma_client", mock_prisma_client
|
||||
):
|
||||
# Case 1: default_internal_user_params is None
|
||||
original = litellm.default_internal_user_params
|
||||
litellm.default_internal_user_params = None
|
||||
result = await list_available_teams(
|
||||
http_request=mock_request,
|
||||
user_api_key_dict=mock_user_key,
|
||||
)
|
||||
assert result == []
|
||||
|
||||
# Case 2: default_internal_user_params exists but has no "available_teams" key
|
||||
litellm.default_internal_user_params = {"some_other_param": "value"}
|
||||
result = await list_available_teams(
|
||||
http_request=mock_request,
|
||||
user_api_key_dict=mock_user_key,
|
||||
)
|
||||
assert result == []
|
||||
|
||||
litellm.default_internal_user_params = original
|
||||
|
|
|
|||
|
|
@ -113,7 +113,16 @@ const AvailableTeamsPanel: React.FC<AvailableTeamsProps> = ({ accessToken, userI
|
|||
{availableTeams.length === 0 && (
|
||||
<TableRow>
|
||||
<TableCell colSpan={5} className="text-center">
|
||||
<Text>No available teams to join</Text>
|
||||
<Text>No available teams to join. See how to set available teams{" "}
|
||||
<a
|
||||
href="https://docs.litellm.ai/docs/proxy/self_serve#all-settings-for-self-serve--sso-flow"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-blue-500 hover:text-blue-700 underline"
|
||||
>
|
||||
here
|
||||
</a>.
|
||||
</Text>
|
||||
</TableCell>
|
||||
</TableRow>
|
||||
)}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue