mirror of
https://github.com/open-webui/open-webui.git
synced 2026-09-26 17:30:27 -04:00
refac
This commit is contained in:
@@ -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(
|
async def get_folder_by_id(
|
||||||
request: Request, id: str, user=Depends(get_verified_user), db: AsyncSession = Depends(get_async_session)
|
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)
|
folder = await Folders.get_folder_by_id_and_user_id(id, user.id, db=db)
|
||||||
if folder:
|
if folder:
|
||||||
grants = await AccessGrants.get_grants_by_resource('folder', id, db=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=True,
|
||||||
|
)
|
||||||
|
|
||||||
# Check shared access
|
# Check shared access
|
||||||
folder = await Folders.get_folder_by_id(id, db=db)
|
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)):
|
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)
|
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(
|
raise HTTPException(
|
||||||
status_code=status.HTTP_404_NOT_FOUND,
|
status_code=status.HTTP_404_NOT_FOUND,
|
||||||
|
|||||||
@@ -109,7 +109,7 @@
|
|||||||
$: folderReadOnly =
|
$: folderReadOnly =
|
||||||
$selectedFolder != null &&
|
$selectedFolder != null &&
|
||||||
$selectedFolder.user_id !== $user?.id &&
|
$selectedFolder.user_id !== $user?.id &&
|
||||||
$selectedFolder.permission !== 'write';
|
!$selectedFolder.write_access;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="m-auto w-full max-w-[58rem] px-1 @2xl:px-20 translate-y-6 py-24 text-center">
|
<div class="m-auto w-full max-w-[58rem] px-1 @2xl:px-20 translate-y-6 py-24 text-center">
|
||||||
|
|||||||
Reference in New Issue
Block a user