From 53e7e917195a5af063db8af03e10e44d6828df56 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 12 Aug 2025 12:08:18 +0800 Subject: [PATCH] bugfix --- filemgr/filemgr.py | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/filemgr/filemgr.py b/filemgr/filemgr.py index f20885f..3980b03 100644 --- a/filemgr/filemgr.py +++ b/filemgr/filemgr.py @@ -104,18 +104,19 @@ class FileMgr: } await sor.C('file', ns) if len(recs) == 0: - # rf = RegisterFunction() - #await rf.exe('fileuploaded', ns) - await self.file_uploaded(request, ns, userid) + await self.file_uploaded(request, ns, u.userid) return True return False async def del_folder(self, request, id): db = DBPools() dbname = get_dbname() + delrecs = [] async with db.sqlorContext(dbname) as sor: u = await get_session_userinfo(request) - return await self.del_folder(sor, id, u.userorgid) + recs = await self._del_folder(sor, id, u.userorgid) + delrecs += delrecs + self.file_deleted(request, delrecs, u.userid) async def _del_folder(self, sor, id, ownerid): await folders = await sor.R('folder', {'id': id}) @@ -128,19 +129,27 @@ class FileMgr: e = Exception(f'Wrong owner for folder({id=}, {ownerid=}') exception(f'{e=}\n{format_exc()}') raise e - fs = [] + delrecs = [] async for f in self.sor_get_subfile(sor, id): - await self._del_file(sor, f.id, ownerid) + recs = await self._del_file(sor, f.id, ownerid) + delrecs += recs async for f in self.sor_get_subfolder(sor, id): - await self._del_folder(sor, f.id, ownerid) + rec = await self._del_folder(sor, f.id, ownerid) + if rec: + delrecs.append(rec) await sor.D('folder', {'id': id}) + return delrecs - async def del_file(self, fid): + async def del_file(self, request, fid): db = DBPools() dbname = get_dbname() + delrecs = [] async with db.sqlorContext(dbname) as sor: u = await get_session_userinfo(request) - return await self._del_file(sor, fid, u.userorgid) + rec = await self._del_file(sor, fid, u.userorgid) + if rec: + delrecs.append(rec) + self.file_deleted(request, delrecs, u.userid) async def _del_file(self, sor, fid, ownerid): recs = await sor.R('file', {'id': fid}) @@ -154,7 +163,8 @@ class FileMgr: remain = await sor.R('file', {'hashvalue':delrec.hashvalue}) if not remain: os.unlink(delrec.realpath) - self.file_deleted(request, delrec) + return delrec + return None # rf = RegisterFunction() # await rf.exe('filedeleted', delrec)