From ee3ece1e2b8c9a38c94faf354ca020d66aba801d Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 21 Sep 2026 14:43:04 -0400 Subject: [PATCH] refac --- backend/open_webui/routers/folders.py | 19 ++++++++++++++++--- src/lib/components/chat/Placeholder.svelte | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/backend/open_webui/routers/folders.py b/backend/open_webui/routers/folders.py index 046a2d8834..eb07c112b9 100644 --- a/backend/open_webui/routers/folders.py +++ b/backend/open_webui/routers/folders.py @@ -287,7 +287,12 @@ async def get_shared_folders( ############################ -@router.get('/{id}', response_model=None) +class FolderResponse(FolderModel): + access_grants: list[dict] = [] + write_access: bool = False + + +@router.get('/{id}', response_model=FolderResponse) async def get_folder_by_id( request: Request, id: str, user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session) ): @@ -295,13 +300,21 @@ async def get_folder_by_id( folder = await Folders.get_folder_by_id_and_user_id(id, user.id, db=db) if folder: grants = await AccessGrants.get_grants_by_resource('folder', id, db=db) - return {**folder.model_dump(), 'access_grants': [g.model_dump() for g in grants]} + return FolderResponse( + **folder.model_dump(), + access_grants=[g.model_dump() for g in grants], + write_access=True, + ) # Check shared access folder = await Folders.get_folder_by_id(id, db=db) if folder and (user.role == 'admin' or await _has_folder_access(user.id, folder, 'read', db)): grants = await AccessGrants.get_grants_by_resource('folder', id, db=db) - return {**folder.model_dump(), 'access_grants': [g.model_dump() for g in grants]} + return FolderResponse( + **folder.model_dump(), + access_grants=[g.model_dump() for g in grants], + write_access=user.role == 'admin' or await _has_folder_access(user.id, folder, 'write', db), + ) raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, diff --git a/src/lib/components/chat/Placeholder.svelte b/src/lib/components/chat/Placeholder.svelte index e8e0b11bdf..603861eae8 100644 --- a/src/lib/components/chat/Placeholder.svelte +++ b/src/lib/components/chat/Placeholder.svelte @@ -109,7 +109,7 @@ $: folderReadOnly = $selectedFolder != null && $selectedFolder.user_id !== $user?.id && - $selectedFolder.permission !== 'write'; + !$selectedFolder.write_access;