This commit is contained in:
yumoqing 2025-06-04 15:23:10 +08:00
parent d629abd446
commit aae5024f02
6 changed files with 147 additions and 12 deletions

20
app/fileMGR.py Normal file
View 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
View 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"
}
}

View File

@ -1,7 +1,10 @@
from traceback import format_exc
from ahserver.serverenv import get_serverenv
from appPublic.uniqueID import getID
from sqlor.dbpools import DBPools
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():
f = get_serverenv('get_module_dbname')
@ -33,9 +36,11 @@ class FileMgr:
ns['orgid'] = userinfo.userorgid,
ns['biztype'] = self.biztype
ns['id'] = getID()
ns['cur_size'] = 0
ns['max_size'] = await get_params(sor, userinfo.userid, 'folder_max_size);
await sor.C('folderinfo', ns)
return UiMessage(title='folderinfo', 'add record successful')
return UiError(title='folderinfo', 'add record failed')
return True
return False
async def delete_bizinfo_node(self, request, ns):
userinfo = await get_session_userinfo(request)
@ -46,8 +51,8 @@ class FileMgr:
ns1['biztype'] = self.biztype
ns1['id'] = ns['id']
await sor.D('folderinfo', ns1)
return UiMessage(title='folderinfo', 'delete record successful')
return UiError(title='folderinfo', 'delete record failed')
return True
return False
async def update_bizinfo_node(self, request, ns):
userinfo = await get_session_userinfo(request)
@ -60,8 +65,8 @@ class FileMgr:
recs = await sor.R('folderinfo', ns1)
if len(recs) > 0:
await sor.U('folderinfo', ns1)
return UiMessage(title='folderinfo', 'delete record successful')
return UiError(title='folderinfo', 'delete record failed')
return True
return return
async def add_folder(self, request, ns):
userinfo = await get_session_userinfo(request)
@ -72,8 +77,8 @@ class FileMgr:
ns1['biztype'] = self.biztype
ns1['id'] = ns['id']
await sor.D('folderinfo', ns1)
return UiMessage(title='folderinfo', 'delete record successful')
return UiError(title='folderinfo', 'delete record failed')
return True
return False
async def get_subfolder(self, request, fid, fiid):
userinfo = await get_session_userinfo(request)
@ -148,6 +153,31 @@ where id = ${fiid}$
ns1['biztype'] = self.biztype
ns1['id'] = ns['id']
await sor.D('folderinfo', ns1)
return UiMessage(title='folderinfo', 'delete record successful')
return UiError(title='folderinfo', 'delete record failed')
return True
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
View File

@ -0,0 +1,8 @@
from ahserver.serverenv import ServerEnv
from filemgr.filemgr import FileMgr
def load_filemgr():
g = ServerEnv()
g.FileMgr = FileMgr

Binary file not shown.

Binary file not shown.