feat: cleanly add user preferences api and rollback wrong auth routes

This commit is contained in:
DXC
2026-03-24 11:01:39 +08:00
parent 5fe645dc0b
commit 4d821f2de7
3 changed files with 48 additions and 1 deletions

View File

@ -0,0 +1,35 @@
from flask import Blueprint, jsonify, request, current_app
from flask_jwt_extended import jwt_required, get_jwt_identity
from app.models.system import SysUser
from app.extensions import db
user_prefs_bp = Blueprint('user_preferences', __name__)
@user_prefs_bp.route('/preferences', methods=['GET'])
@jwt_required()
def get_prefs():
identity = get_jwt_identity()
user_id = identity.get('id') if isinstance(identity, dict) else identity
if not user_id:
return jsonify({'code': 401, 'msg': '无效身份'}), 401
user = SysUser.query.get(user_id)
if not user:
return jsonify({'code': 404, 'msg': '用户不存在'}), 404
return jsonify({'code': 200, 'msg': 'success', 'data': user.preferences or {}})
@user_prefs_bp.route('/preferences', methods=['PUT'])
@jwt_required()
def update_prefs():
identity = get_jwt_identity()
user_id = identity.get('id') if isinstance(identity, dict) else identity
if not user_id:
return jsonify({'code': 401, 'msg': '无效身份'}), 401
user = SysUser.query.get(user_id)
if not user:
return jsonify({'code': 404, 'msg': '用户不存在'}), 404
data = request.get_json() or {}
user.preferences = data
db.session.commit()
return jsonify({'code': 200, 'msg': 'success', 'data': user.preferences})