This commit is contained in:
Timothy Jaeryang Baek
2026-09-21 14:43:04 -04:00
parent c07fa08b99
commit ee3ece1e2b
2 changed files with 17 additions and 4 deletions
+16 -3
View File
@@ -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,
+1 -1
View File
@@ -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">