bugfix
This commit is contained in:
parent
d629abd446
commit
aae5024f02
20
app/fileMGR.py
Normal file
20
app/fileMGR.py
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
from bricks_for_python.init import load_bricks
|
||||||
|
from appbase.init import load_appbase
|
||||||
|
from rbac.init import load_rbac
|
||||||
|
from filemgr.init import load_filemgr
|
||||||
|
from ahserver.webapp import webapp
|
||||||
|
|
||||||
|
def get_module_dbname(mn):
|
||||||
|
return 'sage'
|
||||||
|
|
||||||
|
def init():
|
||||||
|
g = ServerEnv()
|
||||||
|
g.get_module_dbname = get_module_dbname
|
||||||
|
load_appbase()
|
||||||
|
load_rbac()
|
||||||
|
load_filemgr()
|
||||||
|
load_bricks()
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
webapp(init)
|
||||||
|
|
77
conf/config.json
Executable file
77
conf/config.json
Executable file
@ -0,0 +1,77 @@
|
|||||||
|
{
|
||||||
|
"password_key":"!@#$%^&*(*&^%$QWERTYUIqwertyui234567",
|
||||||
|
"logger":{
|
||||||
|
"name":"sage",
|
||||||
|
"levelname":"clientinfo",
|
||||||
|
"logfile":"$[workdir]$/logs/sage.log"
|
||||||
|
},
|
||||||
|
"filesroot":"$[workdir]$/files",
|
||||||
|
"databases":{
|
||||||
|
"mediadb":{
|
||||||
|
"driver":"aiomysql",
|
||||||
|
"async_mode":true,
|
||||||
|
"coding":"utf8",
|
||||||
|
"maxconn":100,
|
||||||
|
"dbname":"mediadb",
|
||||||
|
"kwargs":{
|
||||||
|
"user":"test",
|
||||||
|
"db":"mediadb",
|
||||||
|
"password":"QUZVcXg5V1p1STMybG5Ia6mX9D0v7+g=",
|
||||||
|
"host":"localhost"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"website":{
|
||||||
|
"paths":[
|
||||||
|
["$[workdir]$/wwwroot",""]
|
||||||
|
],
|
||||||
|
"client_max_size":20000,
|
||||||
|
"host":"0.0.0.0",
|
||||||
|
"port":9080,
|
||||||
|
"coding":"utf-8",
|
||||||
|
"indexes":[
|
||||||
|
"index.html",
|
||||||
|
"index.tmpl",
|
||||||
|
"index.ui",
|
||||||
|
"index.dspy",
|
||||||
|
"index.md"
|
||||||
|
],
|
||||||
|
"startswiths":[
|
||||||
|
{
|
||||||
|
"leading":"/idfile",
|
||||||
|
"registerfunction":"idfile"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"processors":[
|
||||||
|
[".ws","ws"],
|
||||||
|
[".xterm","xterm"],
|
||||||
|
[".proxy","proxy"],
|
||||||
|
[".llm", "llm"],
|
||||||
|
[".llms", "llms"],
|
||||||
|
[".llma", "llma"],
|
||||||
|
[".xlsxds","xlsxds"],
|
||||||
|
[".sqlds","sqlds"],
|
||||||
|
[".tmpl.js","tmpl"],
|
||||||
|
[".tmpl.css","tmpl"],
|
||||||
|
[".html.tmpl","tmpl"],
|
||||||
|
[".bcrud", "bricks_crud"],
|
||||||
|
[".tmpl","tmpl"],
|
||||||
|
[".app","app"],
|
||||||
|
[".bui","bui"],
|
||||||
|
[".ui","bui"],
|
||||||
|
[".dspy","dspy"],
|
||||||
|
[".md","md"]
|
||||||
|
],
|
||||||
|
"session_max_time":3000,
|
||||||
|
"session_issue_time":2500,
|
||||||
|
"session_redis_oops":{
|
||||||
|
"url":"redis://127.0.0.1:6379"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"langMapping":{
|
||||||
|
"zh-Hans-CN":"zh-cn",
|
||||||
|
"zh-CN":"zh-cn",
|
||||||
|
"en-us":"en",
|
||||||
|
"en-US":"en"
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,10 @@
|
|||||||
|
from traceback import format_exc
|
||||||
from ahserver.serverenv import get_serverenv
|
from ahserver.serverenv import get_serverenv
|
||||||
from appPublic.uniqueID import getID
|
|
||||||
from sqlor.dbpools import DBPools
|
|
||||||
from ahserver.auth_api import get_userinfo
|
from ahserver.auth_api import get_userinfo
|
||||||
|
from sqlor.dbpools import DBPools
|
||||||
|
from appPublic.uniqueID import getID
|
||||||
|
from appPublic.log import debug, error, exception
|
||||||
|
from appbase.params import get_parmas
|
||||||
|
|
||||||
def get_dbname():
|
def get_dbname():
|
||||||
f = get_serverenv('get_module_dbname')
|
f = get_serverenv('get_module_dbname')
|
||||||
@ -33,9 +36,11 @@ class FileMgr:
|
|||||||
ns['orgid'] = userinfo.userorgid,
|
ns['orgid'] = userinfo.userorgid,
|
||||||
ns['biztype'] = self.biztype
|
ns['biztype'] = self.biztype
|
||||||
ns['id'] = getID()
|
ns['id'] = getID()
|
||||||
|
ns['cur_size'] = 0
|
||||||
|
ns['max_size'] = await get_params(sor, userinfo.userid, 'folder_max_size);
|
||||||
await sor.C('folderinfo', ns)
|
await sor.C('folderinfo', ns)
|
||||||
return UiMessage(title='folderinfo', 'add record successful')
|
return True
|
||||||
return UiError(title='folderinfo', 'add record failed')
|
return False
|
||||||
|
|
||||||
async def delete_bizinfo_node(self, request, ns):
|
async def delete_bizinfo_node(self, request, ns):
|
||||||
userinfo = await get_session_userinfo(request)
|
userinfo = await get_session_userinfo(request)
|
||||||
@ -46,8 +51,8 @@ class FileMgr:
|
|||||||
ns1['biztype'] = self.biztype
|
ns1['biztype'] = self.biztype
|
||||||
ns1['id'] = ns['id']
|
ns1['id'] = ns['id']
|
||||||
await sor.D('folderinfo', ns1)
|
await sor.D('folderinfo', ns1)
|
||||||
return UiMessage(title='folderinfo', 'delete record successful')
|
return True
|
||||||
return UiError(title='folderinfo', 'delete record failed')
|
return False
|
||||||
|
|
||||||
async def update_bizinfo_node(self, request, ns):
|
async def update_bizinfo_node(self, request, ns):
|
||||||
userinfo = await get_session_userinfo(request)
|
userinfo = await get_session_userinfo(request)
|
||||||
@ -60,8 +65,8 @@ class FileMgr:
|
|||||||
recs = await sor.R('folderinfo', ns1)
|
recs = await sor.R('folderinfo', ns1)
|
||||||
if len(recs) > 0:
|
if len(recs) > 0:
|
||||||
await sor.U('folderinfo', ns1)
|
await sor.U('folderinfo', ns1)
|
||||||
return UiMessage(title='folderinfo', 'delete record successful')
|
return True
|
||||||
return UiError(title='folderinfo', 'delete record failed')
|
return return
|
||||||
|
|
||||||
async def add_folder(self, request, ns):
|
async def add_folder(self, request, ns):
|
||||||
userinfo = await get_session_userinfo(request)
|
userinfo = await get_session_userinfo(request)
|
||||||
@ -72,8 +77,8 @@ class FileMgr:
|
|||||||
ns1['biztype'] = self.biztype
|
ns1['biztype'] = self.biztype
|
||||||
ns1['id'] = ns['id']
|
ns1['id'] = ns['id']
|
||||||
await sor.D('folderinfo', ns1)
|
await sor.D('folderinfo', ns1)
|
||||||
return UiMessage(title='folderinfo', 'delete record successful')
|
return True
|
||||||
return UiError(title='folderinfo', 'delete record failed')
|
return False
|
||||||
|
|
||||||
async def get_subfolder(self, request, fid, fiid):
|
async def get_subfolder(self, request, fid, fiid):
|
||||||
userinfo = await get_session_userinfo(request)
|
userinfo = await get_session_userinfo(request)
|
||||||
@ -148,6 +153,31 @@ where id = ${fiid}$
|
|||||||
ns1['biztype'] = self.biztype
|
ns1['biztype'] = self.biztype
|
||||||
ns1['id'] = ns['id']
|
ns1['id'] = ns['id']
|
||||||
await sor.D('folderinfo', ns1)
|
await sor.D('folderinfo', ns1)
|
||||||
return UiMessage(title='folderinfo', 'delete record successful')
|
return True
|
||||||
return UiError(title='folderinfo', 'delete record failed')
|
return False
|
||||||
|
|
||||||
|
async def delete_file(self, request, fid, fiid):
|
||||||
|
userinfo = await get_session_userinfo(request)
|
||||||
|
dbname = get_dbname()
|
||||||
|
db = DBPools()
|
||||||
|
async with db.sqlorContext(dbname) as sor:
|
||||||
|
sql = """select a.id as fiid, b.*
|
||||||
|
from folderinfo a, file b
|
||||||
|
where a.id = ${fiid}$
|
||||||
|
and b.id = ${fid}$
|
||||||
|
and a.orgid = ${orgid}
|
||||||
|
and b.userid = ${userid}$
|
||||||
|
and a.biztype = ${biztype}$"""
|
||||||
|
ns = {
|
||||||
|
'fid':fid,
|
||||||
|
'fiid':fiid,
|
||||||
|
'userid':userinfo.userid,
|
||||||
|
'orgid':userinfo.userorgid,
|
||||||
|
'biztype':self.biztype
|
||||||
|
}
|
||||||
|
recs = await sor.sqlExe(sql, ns)
|
||||||
|
if len(recs) > 0:
|
||||||
|
await sor.D('file', {'id': fid})
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
8
filemgr/init.py
Normal file
8
filemgr/init.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
from ahserver.serverenv import ServerEnv
|
||||||
|
from filemgr.filemgr import FileMgr
|
||||||
|
|
||||||
|
def load_filemgr():
|
||||||
|
g = ServerEnv()
|
||||||
|
g.FileMgr = FileMgr
|
||||||
|
|
||||||
|
|
BIN
models/file.xlsx
BIN
models/file.xlsx
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user