feat: 用户登录/管理 + 操作日志模块
- tb_user 用户表、tb_log 日志表 - Flask-Login 认证(login/logout/权限装饰器) - 用户管理页(admin 专有):增删改查、改密、角色设置 - 操作日志页:分页查询、按用户/类型筛选 - 测试操作区指令自动记录日志 - 所有页面加 @login_required 保护 - 默认管理员 admin/admin123(首次启动自动创建)
This commit is contained in:
32
edc-web/app/routes/logs.py
Normal file
32
edc-web/app/routes/logs.py
Normal file
@@ -0,0 +1,32 @@
|
||||
"""日志查询 API"""
|
||||
|
||||
from flask import Blueprint, jsonify, render_template, request
|
||||
from flask_login import login_required
|
||||
from app.auth import admin_required
|
||||
from app.models import get_logs
|
||||
|
||||
bp = Blueprint("logs", __name__, url_prefix="/logs")
|
||||
|
||||
|
||||
@bp.route("/")
|
||||
@admin_required
|
||||
def logs_page():
|
||||
return render_template("logs.html")
|
||||
|
||||
|
||||
@bp.route("/api/logs")
|
||||
@admin_required
|
||||
def api_logs():
|
||||
page = request.args.get("page", 1, type=int)
|
||||
per_page = request.args.get("per_page", 30, type=int)
|
||||
username = request.args.get("username", "", type=str)
|
||||
action_type = request.args.get("action_type", "", type=str)
|
||||
|
||||
records, total = get_logs(page, per_page, username, action_type)
|
||||
return jsonify({
|
||||
"records": records,
|
||||
"total": total,
|
||||
"page": page,
|
||||
"per_page": per_page,
|
||||
"pages": (total + per_page - 1) // per_page if total > 0 else 1,
|
||||
})
|
||||
Reference in New Issue
Block a user