This commit is contained in:
yumoqing 2025-08-12 12:08:18 +08:00
parent 6c7dfdc460
commit 53e7e91719

View File

@ -104,18 +104,19 @@ class FileMgr:
} }
await sor.C('file', ns) await sor.C('file', ns)
if len(recs) == 0: if len(recs) == 0:
# rf = RegisterFunction() await self.file_uploaded(request, ns, u.userid)
#await rf.exe('fileuploaded', ns)
await self.file_uploaded(request, ns, userid)
return True return True
return False return False
async def del_folder(self, request, id): async def del_folder(self, request, id):
db = DBPools() db = DBPools()
dbname = get_dbname() dbname = get_dbname()
delrecs = []
async with db.sqlorContext(dbname) as sor: async with db.sqlorContext(dbname) as sor:
u = await get_session_userinfo(request) 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): async def _del_folder(self, sor, id, ownerid):
await folders = await sor.R('folder', {'id': id}) await folders = await sor.R('folder', {'id': id})
@ -128,19 +129,27 @@ class FileMgr:
e = Exception(f'Wrong owner for folder({id=}, {ownerid=}') e = Exception(f'Wrong owner for folder({id=}, {ownerid=}')
exception(f'{e=}\n{format_exc()}') exception(f'{e=}\n{format_exc()}')
raise e raise e
fs = [] delrecs = []
async for f in self.sor_get_subfile(sor, id): 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): 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}) await sor.D('folder', {'id': id})
return delrecs
async def del_file(self, fid): async def del_file(self, request, fid):
db = DBPools() db = DBPools()
dbname = get_dbname() dbname = get_dbname()
delrecs = []
async with db.sqlorContext(dbname) as sor: async with db.sqlorContext(dbname) as sor:
u = await get_session_userinfo(request) 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): async def _del_file(self, sor, fid, ownerid):
recs = await sor.R('file', {'id': fid}) recs = await sor.R('file', {'id': fid})
@ -154,7 +163,8 @@ class FileMgr:
remain = await sor.R('file', {'hashvalue':delrec.hashvalue}) remain = await sor.R('file', {'hashvalue':delrec.hashvalue})
if not remain: if not remain:
os.unlink(delrec.realpath) os.unlink(delrec.realpath)
self.file_deleted(request, delrec) return delrec
return None
# rf = RegisterFunction() # rf = RegisterFunction()
# await rf.exe('filedeleted', delrec) # await rf.exe('filedeleted', delrec)