This commit is contained in:
Timothy Jaeryang Baek
2026-02-09 14:03:35 -06:00
parent 1034b74abd
commit c2f5cb542e
6 changed files with 17 additions and 33 deletions
+3
View File
@@ -184,6 +184,9 @@ class UserInfoResponse(UserStatus):
name: str
email: str
role: str
bio: Optional[str] = None
groups: Optional[list] = []
is_active: bool = False
class UserIdNameResponse(BaseModel):
+8 -1
View File
@@ -484,7 +484,14 @@ async def get_user_info_by_id(
):
user = Users.get_user_by_id(user_id, db=db)
if user:
return user
groups = Groups.get_groups_by_member_id(user_id, db=db)
return UserInfoResponse(
**{
**user.model_dump(),
"groups": [{"id": group.id, "name": group.name} for group in groups],
"is_active": Users.is_user_active(user_id, db=db),
}
)
else:
raise HTTPException(
status_code=status.HTTP_400_BAD_REQUEST,
-26
View File
@@ -300,32 +300,6 @@ export const updateUserSettings = async (token: string, settings: object) => {
return res;
};
export const getUserById = async (token: string, userId: string) => {
let error = null;
const res = await fetch(`${WEBUI_API_BASE_URL}/users/${userId}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`
}
})
.then(async (res) => {
if (!res.ok) throw await res.json();
return res.json();
})
.catch((err) => {
console.error(err);
error = err.detail;
return null;
});
if (error) {
throw error;
}
return res;
};
export const getUserInfoById = async (token: string, userId: string) => {
let error = null;
@@ -3,7 +3,7 @@
import { LinkPreview } from 'bits-ui';
const i18n = getContext('i18n');
import { getUserById } from '$lib/apis/users';
import { getUserInfoById } from '$lib/apis/users';
import UserStatus from './UserStatus.svelte';
@@ -16,7 +16,7 @@
let user = null;
onMount(async () => {
if (id) {
user = await getUserById(localStorage.token, id).catch((error) => {
user = await getUserInfoById(localStorage.token, id).catch((error) => {
console.error('Error fetching user by ID:', error);
return null;
});
@@ -5,7 +5,7 @@
const i18n = getContext('i18n');
import { user as _user } from '$lib/stores';
import { getUserById, searchUsers } from '$lib/apis/users';
import { getUserInfoById, searchUsers } from '$lib/apis/users';
import { WEBUI_API_BASE_URL } from '$lib/constants';
import XMark from '$lib/components/icons/XMark.svelte';
@@ -84,7 +84,7 @@
if (userIds.length > 0) {
userIds.forEach(async (id) => {
const res = await getUserById(localStorage.token, id).catch((error) => {
const res = await getUserInfoById(localStorage.token, id).catch((error) => {
console.error(error);
return null;
});
+2 -2
View File
@@ -12,7 +12,7 @@
import Messages from '$lib/components/chat/Messages.svelte';
import { getUserById, getUserSettings } from '$lib/apis/users';
import { getUserInfoById, getUserSettings } from '$lib/apis/users';
import { getModels } from '$lib/apis';
import { toast } from 'svelte-sonner';
import localizedFormat from 'dayjs/plugin/localizedFormat';
@@ -92,7 +92,7 @@
});
if (chat) {
user = await getUserById(localStorage.token, chat.user_id).catch((error) => {
user = await getUserInfoById(localStorage.token, chat.user_id).catch((error) => {
console.error(error);
return null;
});