""" 演示模式拦截装饰器 ============================================================= 在演示环境(FLASK_DEMO=True)下拦截所有写操作, 返回"演示环境,暂无操作权限"提示。 使用方式: 在 View 路由函数上添加 @check_demo 装饰器, 替代原有的 if FLASK_DEMO: return R.failed(...) 判断。 """ from functools import wraps from config import FLASK_DEMO from utils import R def check_demo(func): """ 演示模式拦截装饰器 当 FLASK_DEMO=True 时,拦截写操作并返回提示。 应放在 @check_permission 之后、路由函数之前。 Example: @position_blue.route('/add', methods=["POST"]) @check_permission("sys:position:add") @check_demo def add(): result = position.add_position() return result """ @wraps(func) def wrapper(*args, **kwargs): if FLASK_DEMO: return R.failed("演示环境,暂无操作权限") return func(*args, **kwargs) return wrapper