- auth.py: 新增 privileged_required 装饰器 (admin+manager),admin_required 仅限用户管理 - 路由权限: fixture/logs/device_logs/test_data 的 admin 检查改为 admin+manager - 前端: 导航栏/删除按钮/配置按钮扩展为 admin+manager 可见 - 用户管理: 角色下拉增加 manager 选项,仍仅 admin 可访问 - 新增 /change-password 路由+模板,所有登录用户可自行修改密码 - edc_server models.py: role COMMENT 更新 + ALTER TABLE 迁移
33 lines
914 B
Python
33 lines
914 B
Python
"""日志查询 API"""
|
|
|
|
from flask import Blueprint, jsonify, render_template, request
|
|
from flask_login import login_required
|
|
from app.auth import privileged_required
|
|
from app.models import get_logs
|
|
|
|
bp = Blueprint("logs", __name__, url_prefix="/logs")
|
|
|
|
|
|
@bp.route("/")
|
|
@privileged_required
|
|
def logs_page():
|
|
return render_template("logs.html")
|
|
|
|
|
|
@bp.route("/api/logs")
|
|
@privileged_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,
|
|
})
|