This commit is contained in:
Timothy Jaeryang Baek committed 2026-06-16 23:59:24 +02:00
1 parent ec86ce5cf7
commit fbcdcf146b
2 files changed
+36 -6

No files matched your search

+36 -5
View File
@@ -31,9 +31,7 @@ from open_webui.models.messages import (
from open_webui.models.users import ( from open_webui.models.users import (
UserIdNameResponse, UserIdNameResponse,
UserIdNameStatusResponse, UserIdNameStatusResponse,
UserListResponse,
UserModel, UserModel,
UserModelResponse,
UserNameResponse, UserNameResponse,
Users, Users,
) )
@@ -440,7 +438,40 @@ async def get_channel_by_id(
PAGE_ITEM_COUNT = 30 PAGE_ITEM_COUNT = 30
@router.get('/{id}/members', response_model=UserListResponse) class ChannelMemberResponse(BaseModel):
id: str
email: str
name: str
role: str
profile_image_url: str | None = None
presence_state: str | None = None
status_emoji: str | None = None
status_message: str | None = None
status_expires_at: int | None = None
is_active: bool = False
class ChannelMemberListResponse(BaseModel):
users: list[ChannelMemberResponse]
total: int
def serialize_channel_member(user: UserModel) -> ChannelMemberResponse:
return ChannelMemberResponse(
id=user.id,
email=user.email,
name=user.name,
role=user.role,
profile_image_url=user.profile_image_url,
presence_state=user.presence_state,
status_emoji=user.status_emoji,
status_message=user.status_message,
status_expires_at=user.status_expires_at,
is_active=Users.is_active(user),
)
@router.get('/{id}/members', response_model=ChannelMemberListResponse)
async def get_channel_members_by_id( async def get_channel_members_by_id(
request: Request, request: Request,
id: str, id: str,
@@ -475,7 +506,7 @@ async def get_channel_members_by_id(
total = len(fetched_users) total = len(fetched_users)
return { return {
'users': [UserModelResponse(**u.model_dump(), is_active=Users.is_active(u)) for u in fetched_users], 'users': [serialize_channel_member(u) for u in fetched_users],
'total': total, 'total': total,
} }
else: else:
@@ -503,7 +534,7 @@ async def get_channel_members_by_id(
total = result['total'] total = result['total']
return { return {
'users': [UserModelResponse(**u.model_dump(), is_active=Users.is_active(u)) for u in fetched_users], 'users': [serialize_channel_member(u) for u in fetched_users],
'total': total, 'total': total,
} }
@@ -15,7 +15,6 @@
import Pagination from '$lib/components/common/Pagination.svelte'; import Pagination from '$lib/components/common/Pagination.svelte';
import Tooltip from '$lib/components/common/Tooltip.svelte'; import Tooltip from '$lib/components/common/Tooltip.svelte';
import Badge from '$lib/components/common/Badge.svelte'; import Badge from '$lib/components/common/Badge.svelte';
import Plus from '$lib/components/icons/Plus.svelte'; import Plus from '$lib/components/icons/Plus.svelte';
import Spinner from '$lib/components/common/Spinner.svelte'; import Spinner from '$lib/components/common/Spinner.svelte';