bugfix
This commit is contained in:
parent
97a80280b6
commit
654327f80c
@ -22,6 +22,10 @@ def get_dbname():
|
|||||||
dbname = f('filemgr')
|
dbname = f('filemgr')
|
||||||
return dbname
|
return dbname
|
||||||
|
|
||||||
|
class FileMgrResult(DictObject):
|
||||||
|
def __init__(self, status, message, **kw):
|
||||||
|
super.__init__(status=status, message=message, **kw)
|
||||||
|
|
||||||
class FileMgr:
|
class FileMgr:
|
||||||
def __init__(self, fiid):
|
def __init__(self, fiid):
|
||||||
self.fiid = fiid
|
self.fiid = fiid
|
||||||
@ -61,7 +65,7 @@ class FileMgr:
|
|||||||
dbname = get_dbname()
|
dbname = get_dbname()
|
||||||
u = await get_session_userinfo(request)
|
u = await get_session_userinfo(request)
|
||||||
if u is None:
|
if u is None:
|
||||||
return False
|
return FileMgrResult('error', 'user need login')
|
||||||
|
|
||||||
db = DBPools()
|
db = DBPools()
|
||||||
async with db.sqlorContext(dbname) as sor:
|
async with db.sqlorContext(dbname) as sor:
|
||||||
@ -70,7 +74,7 @@ class FileMgr:
|
|||||||
os.unlink(realpath)
|
os.unlink(realpath)
|
||||||
e = Exception(f'owner mismatch({u.userorgid=})')
|
e = Exception(f'owner mismatch({u.userorgid=})')
|
||||||
exception(f'{e=}\n{format_exc()}')
|
exception(f'{e=}\n{format_exc()}')
|
||||||
raise
|
raise e
|
||||||
quota, expired_date = await self.get_organization_quota(sor,
|
quota, expired_date = await self.get_organization_quota(sor,
|
||||||
u.userorgid)
|
u.userorgid)
|
||||||
if quota is None:
|
if quota is None:
|
||||||
@ -90,7 +94,7 @@ class FileMgr:
|
|||||||
os.unlink(realpath)
|
os.unlink(realpath)
|
||||||
e = Exception(f'File exists')
|
e = Exception(f'File exists')
|
||||||
exception(f'{e=}\n{format_exc()}')
|
exception(f'{e=}\n{format_exc()}')
|
||||||
return False
|
return FileMgrResult('failed', 'file exists')
|
||||||
|
|
||||||
recs = await sor.R('file',{'hashvalue': hashvalue})
|
recs = await sor.R('file',{'hashvalue': hashvalue})
|
||||||
if len(recs) > 0:
|
if len(recs) > 0:
|
||||||
@ -112,9 +116,10 @@ class FileMgr:
|
|||||||
}
|
}
|
||||||
await sor.C('file', ns)
|
await sor.C('file', ns)
|
||||||
if len(recs) == 0:
|
if len(recs) == 0:
|
||||||
await self.file_uploaded(request, ns, u.userid)
|
ret = await self.file_uploaded(request, ns, u.userid)
|
||||||
return True
|
return ret
|
||||||
return False
|
return FileMgrResult('success', 'file added')
|
||||||
|
return FileMgrResult('error', str(db.e_except))
|
||||||
|
|
||||||
async def del_folder(self, request, id):
|
async def del_folder(self, request, id):
|
||||||
db = DBPools()
|
db = DBPools()
|
||||||
@ -164,7 +169,9 @@ class FileMgr:
|
|||||||
rec = await self._del_file(sor, fid, u.userorgid)
|
rec = await self._del_file(sor, fid, u.userorgid)
|
||||||
if rec:
|
if rec:
|
||||||
delrecs.append(rec)
|
delrecs.append(rec)
|
||||||
self.file_deleted(request, delrecs, u.userid)
|
ret = await self.file_deleted(request, delrecs, u.userid)
|
||||||
|
return ret
|
||||||
|
return FileMgrResult('success', 'file deleted')
|
||||||
|
|
||||||
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})
|
||||||
@ -180,8 +187,6 @@ class FileMgr:
|
|||||||
os.unlink(delrec.realpath)
|
os.unlink(delrec.realpath)
|
||||||
return delrec
|
return delrec
|
||||||
return None
|
return None
|
||||||
# rf = RegisterFunction()
|
|
||||||
# await rf.exe('filedeleted', delrec)
|
|
||||||
|
|
||||||
async def has_sub(self, sor, folderid):
|
async def has_sub(self, sor, folderid):
|
||||||
sql = """select unique a.* from folder a
|
sql = """select unique a.* from folder a
|
||||||
|
|||||||
@ -4,4 +4,4 @@ async with db.sqlorContext(dbname) as sor:
|
|||||||
filemgr = Filemgr()
|
filemgr = Filemgr()
|
||||||
await filemgr._del_folder(sor, params_kw.id)
|
await filemgr._del_folder(sor, params_kw.id)
|
||||||
return UiMessage(title='delete folder', message='delete success')
|
return UiMessage(title='delete folder', message='delete success')
|
||||||
return Error(title='delete folder', message='delete failed')
|
return UiError(title='delete folder', message='delete failed')
|
||||||
|
|||||||
@ -27,4 +27,4 @@ async with db.sqlorContext(dbname) as sor:
|
|||||||
else:
|
else:
|
||||||
await filemgr._del_file(sor, params_kw.id)
|
await filemgr._del_file(sor, params_kw.id)
|
||||||
return UiMessage(title='delete file', message='delete success')
|
return UiMessage(title='delete file', message='delete success')
|
||||||
return Error(title='delete file', message='delete failed')
|
return UiError(title='delete file', message='delete failed')
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
fmgr = FileMgr()
|
fmgr = FileMgr()
|
||||||
stat = await fmgr.add_file(request, params_kw)
|
stat = await fmgr.add_file(request, params_kw)
|
||||||
if stat:
|
if stat.status='success':
|
||||||
return UiMessage(title='Add file', message='file add success')
|
return UiMessage(title='Add file', message='file add success')
|
||||||
return UiError(title='Add file', message='file add failed')
|
return UiError(title='Add file', message='file add failed')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user