This commit is contained in:
刘正航
2026-04-21 22:45:19 +08:00
commit b5237f9038
159 changed files with 7769 additions and 0 deletions

View File

@@ -0,0 +1 @@

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

25
backend/app/utils/auth.py Normal file
View File

@@ -0,0 +1,25 @@
from functools import wraps
from flask import jsonify
from flask_jwt_extended import get_jwt, get_jwt_identity, verify_jwt_in_request
from app.models import User
def current_user() -> User | None:
identity = get_jwt_identity()
if not identity:
return None
return User.query.get(int(identity))
def admin_required(fn):
@wraps(fn)
def wrapper(*args, **kwargs):
verify_jwt_in_request()
claims = get_jwt()
if not claims.get("is_admin", False):
return jsonify({"code": 403, "message": "需要管理员权限"}), 403
return fn(*args, **kwargs)
return wrapper

View File

@@ -0,0 +1,9 @@
from flask import jsonify
def ok(data=None, message="success"):
return jsonify({"code": 0, "message": message, "data": data or {}})
def fail(message="error", code=400, data=None):
return jsonify({"code": code, "message": message, "data": data or {}}), code