合并login
Change-Id: Ie06ed019cbb00d52e0b9e1f3c7a56c947b57a42c
diff --git a/Merge/back_trm/app/routes.py b/Merge/back_trm/app/routes.py
index 41b022b..625ea6d 100644
--- a/Merge/back_trm/app/routes.py
+++ b/Merge/back_trm/app/routes.py
@@ -5,8 +5,10 @@
from config import Config
from flask import jsonify,request
+
main = Blueprint('main', __name__)
+
@main.route('/sgiveadmin',methods=['POST','GET'])
def giveadmin():
data=request.get_json()
@@ -17,12 +19,23 @@
f=Fpost(session)
checres=f.checkid(data['userid'],'superadmin')
if(not checres):
+ f.recordlog(data['userid'],
+ 'error',
+ '系统需要超级管理员才能执行修改用户角色的操作,但是当前用户不是超级管理员',
+ request.remote_addr)
return jsonify({'status': 'error', 'message': 'Unauthorized'})
res=f.giveadmin(data['targetid'])
if not res:
+ f.recordlog(data['userid'],
+ 'error',
+ f"尝试修改用户{data['targetid']}角色为admin失败,用户不存在",
+ request.remote_addr)
return jsonify({'status': 'error', 'message': 'User not found'})
-
+ f.recordlog(data['userid'],
+ 'behavior',
+ f'用户角色为admin修改成功,用户ID: {data["targetid"]} 被修改为管理员',
+ request.remote_addr)
return jsonify({'status': 'success', 'message': 'User role updated to admin'})
@main.route('/sgiveuser',methods=['POST','GET'])
@@ -35,12 +48,23 @@
f=Fpost(session)
checres=f.checkid(data['userid'],'superadmin')
if(not checres):
+ f.recordlog(data['userid'],
+ 'error',
+ '系统需要超级管理员才能执行修改用户角色的操作,但是当前用户不是超级管理员',
+ request.remote_addr)
return jsonify({'status': 'error', 'message': 'Unauthorized'})
res=f.giveuser(data['targetid'])
if not res:
+ f.recordlog(data['userid'],
+ 'error',
+ f"尝试修改用户{data['targetid']}为user失败,用户不存在",
+ request.remote_addr)
return jsonify({'status': 'error', 'message': 'User not found'})
-
+ f.recordlog(data['userid'],
+ 'behavior',
+ f'用户角色修改成功,用户ID: {data["targetid"]} 被修改为普通用户',
+ request.remote_addr)
return jsonify({'status': 'success', 'message': 'User role updated to user'})
@@ -54,12 +78,23 @@
f=Fpost(session)
checres=f.checkid(data['userid'],'superadmin')
if(not checres):
+ f.recordlog(data['userid'],
+ 'error',
+ '系统需要超级管理员才能执行修改用户角色的操作,但是当前用户不是超级管理员',
+ request.remote_addr)
return jsonify({'status': 'error', 'message': 'Unauthorized'})
res=f.givesuperadmin(data['targetid'])
if not res:
+ f.recordlog(data['userid'],
+ 'error',
+ f'尝试修改用户{data["targetid"]}角色为superadmin失败,用户不存在',
+ request.remote_addr)
return jsonify({'status': 'error', 'message': 'User not found'})
-
+ f.recordlog(data['userid'],
+ 'behavior',
+ f'用户角色修改成功,用户ID: {data["targetid"]} 被修改为超级管理员',
+ request.remote_addr)
return jsonify({'status': 'success', 'message': 'User role updated to superadmin'})
@main.route('/sgetuserlist',methods=['POST','GET'])
@@ -72,6 +107,10 @@
f=Fpost(session)
checres=f.checkid(data['userid'],'superadmin')
if(not checres):
+ f.recordlog(data['userid'],
+ 'error',
+ '系统需要超级管理员才能执行获取用户列表的操作,但是当前用户不是超级管理员',
+ request.remote_addr)
return jsonify({'status': 'error', 'message': 'Unauthorized'})
res=f.getuserlist()
respons=[]
@@ -81,6 +120,11 @@
'username': datai[1],
'role': datai[2]
})
+
+ f.recordlog(data['userid'],
+ 'access',
+ '获取用户列表成功',
+ request.remote_addr)
return jsonify(respons)
@main.route('/apostlist',methods=['POST','GET'])
@@ -93,6 +137,10 @@
f=Fpost(session)
checres=f.checkid(data['userid'],'admin')
if(not checres):
+ f.recordlog(data['userid'],
+ 'error',
+ '系统需要管理员才能执行获取帖子列表的操作,但是当前用户不是管理员',
+ request.remote_addr)
return jsonify({'status': 'error', 'message': 'Unauthorized'})
res=f.getlist()
respons=[]
@@ -102,6 +150,10 @@
'title': datai[1],
'status': datai[2]
})
+ f.recordlog(data['userid'],
+ 'access',
+ '获取帖子列表成功',
+ request.remote_addr)
return jsonify(respons)
@main.route('/agetpost',methods=['POST','GET'])
@@ -113,9 +165,22 @@
f=Fpost(session)
checres=f.checkid(data['userid'],'admin')
if(not checres):
+ f.recordlog(data['userid'],
+ 'error',
+ '系统需要管理员才能执行获取帖子详情的操作,但是当前用户不是管理员',
+ request.remote_addr)
return jsonify({'status': 'error', 'message': 'Unauthorized'})
res=f.getpost(data['postid'])
-
+ if not res:
+ f.recordlog(data['userid'],
+ 'error',
+ f'尝试获取帖子{data["postid"]}失败,帖子不存在',
+ request.remote_addr)
+ return jsonify({'status': 'error', 'message': 'Post not found'})
+ f.recordlog(data['userid'],
+ 'access',
+ f'获取帖子详情成功,帖子ID: {data["postid"]}',
+ request.remote_addr)
return jsonify(res.to_dict() if res else {})
@main.route('/areview',methods=['POST','GET'])
@@ -127,12 +192,23 @@
f=Fpost(session)
checres=f.checkid(data['userid'],'admin')
if(not checres):
+ f.recordlog(data['userid'],
+ 'error',
+ '系统需要管理员才能执行帖子审核的操作,但是当前用户不是管理员',
+ request.remote_addr)
return jsonify({'status': 'error', 'message': 'Unauthorized'})
res=f.review(data['postid'],data['status'])
if not res:
+ f.recordlog(data['userid'],
+ 'error',
+ f'尝试审核帖子{data["postid"]}失败,帖子不存在',
+ request.remote_addr)
return jsonify({'status': 'error', 'message': 'Post not found'})
-
+ f.recordlog(data['userid'],
+ 'behavior',
+ f'帖子审核成功,帖子ID: {data["postid"]} 状态更新为 {data["status"]}',
+ request.remote_addr)
return jsonify({'status': 'success', 'message': 'Post reviewed successfully'})
@@ -146,10 +222,102 @@
f=Fpost(session)
checres=f.checkid(data['userid'],'admin')
if(not checres):
+ f.recordlog(data['userid'],
+ 'error',
+ '系统需要管理员才能执行Nginx认证的操作,但是当前用户不是管理员',
+ request.remote_addr)
return jsonify({'status': 'error', 'message': 'Unauthorized'})
res=f.nginxauth(data['postid'],data['status'])
if not res:
+ f.recordlog(data['userid'],
+ 'error',
+ f'尝试更新Nginx认证状态失败,帖子{data["postid"]}不存在',
+ request.remote_addr)
return jsonify({'status': 'error', 'message': 'Post not found'})
+ f.recordlog(data['userid'],
+ 'behavior',
+ f'Nginx认证状态更新成功,帖子ID: {data["postid"]} 状态更新为 {data["status"]}',
+ request.remote_addr)
+ return jsonify({'status': 'success', 'message': 'Nginx auth updated successfully'})
+
+@main.route('/getsyscost',methods=['POST','GET'])
+def getsyscost():
+ data=request.get_json()
+ engine=create_engine(Config.SQLURL)
+ SessionLocal = sessionmaker(bind=engine)
+ session = SessionLocal()
+ f=Fpost(session)
+ checres=f.checkid(data['userid'],'superadmin')
+ if(not checres):
+ f.recordlog(data['userid'],
+ 'error',
+ '系统需要管理员才能执行获取系统性能消耗的操作,但是当前用户不是管理员',
+ request.remote_addr)
+ return jsonify({'status': 'error', 'message': 'Unauthorized'})
- return jsonify({'status': 'success', 'message': 'Nginx auth updated successfully'})
\ No newline at end of file
+ res=f.getsyscost()
+ if not res:
+ f.recordlog(data['userid'],
+ 'error',
+ '尝试获取系统性能消耗数据失败,数据不存在',
+ request.remote_addr)
+ return jsonify({'status': 'error', 'message': 'No performance data found'})
+
+ f.recordlog(data['userid'],
+ 'access',
+ '获取系统性能消耗数据成功',
+ request.remote_addr)
+ resdata = []
+ for datai in res:
+ resdata.append({
+ 'id': datai.id,
+ 'record_time': datai.record_time.isoformat(),
+ 'endpoint': datai.endpoint,
+ 'elapsed_time': datai.elapsed_time,
+ 'cpu_user': datai.cpu_user,
+ 'cpu_system': datai.cpu_system,
+ 'memory_rss': datai.memory_rss
+ })
+ return jsonify(resdata)
+@main.route('/getrecordlog',methods=['POST','GET'])
+def getrecordlog():
+ data=request.get_json()
+ engine=create_engine(Config.SQLURL)
+ SessionLocal = sessionmaker(bind=engine)
+ session = SessionLocal()
+ f=Fpost(session)
+ checres=f.checkid(data['userid'],'admin')
+ if(not checres):
+ f.recordlog(data['userid'],
+ 'error',
+ '系统需要管理员才能执行获取日志的操作,但是当前用户不是管理员',
+ request.remote_addr)
+ return jsonify({'status': 'error', 'message': 'Unauthorized'})
+
+ res=f.getrecordlog()
+ if not res:
+ f.recordlog(data['userid'],
+ 'error',
+ '尝试获取日志失败,日志不存在',
+ request.remote_addr)
+ return jsonify({'status': 'error', 'message': 'No logs found'})
+
+ f.recordlog(data['userid'],
+ 'access',
+ '获取日志成功',
+ request.remote_addr)
+
+ resdata = []
+ for datai in res:
+ resdata.append({
+ 'id': datai.id,
+ 'user_id': datai.user_id,
+ 'type': datai.type,
+ 'content': datai.content,
+ 'ip': datai.ip,
+ 'created_at': datai.created_at.isoformat()
+ })
+
+ return jsonify(resdata)
+