@@ -263,7 +263,9 @@ async def compute_path_total_size(self, user_id: UserID, *, path: Path) -> ByteS
263263
264264 use_db_data = True
265265 with contextlib .suppress (ValidationError ):
266- file_id = TypeAdapter (StorageFileID ).validate_python (f"{ path } " )
266+ file_id : StorageFileID = TypeAdapter (StorageFileID ).validate_python (
267+ f"{ path } "
268+ )
267269 # path is a valid StorageFileID
268270 async with self .engine .connect () as conn :
269271 if (
@@ -297,7 +299,7 @@ async def compute_path_total_size(self, user_id: UserID, *, path: Path) -> ByteS
297299 updated_fmds = []
298300 for metadata in fmds :
299301 if is_file_entry_valid (metadata ):
300- updated_fmds .append (metadata )
302+ updated_fmds .append (convert_db_to_model ( metadata ) )
301303 continue
302304 updated_fmds .append (
303305 convert_db_to_model (await self ._update_database_from_storage (metadata ))
@@ -409,6 +411,12 @@ async def get_file(self, user_id: UserID, file_id: StorageFileID) -> FileMetaDat
409411 fmd = await self ._update_database_from_storage (fmd )
410412 return convert_db_to_model (fmd )
411413
414+ async def can_read_file (self , user_id : UserID , file_id : StorageFileID ):
415+ async with self .engine .connect () as conn :
416+ can = await get_file_access_rights (conn , int (user_id ), file_id )
417+ if not can .read :
418+ raise FileAccessRightError (access_right = "read" , file_id = file_id )
419+
412420 async def create_file_upload_links (
413421 self ,
414422 user_id : UserID ,
0 commit comments