diff --git a/api_v1/routes/metrics.py b/api_v1/routes/metrics.py index 47afdc2..670c3f4 100644 --- a/api_v1/routes/metrics.py +++ b/api_v1/routes/metrics.py @@ -14,15 +14,21 @@ from api_v1.utils import ( internal_error, bad_request, ) -from auth import jwt_required_middleware, plan_required +from saas_auth import require_auth as jwt_required_middleware +from flask import request as _req metrics_bp = Blueprint("v1_metrics", __name__, url_prefix="/api/v1") @metrics_bp.route("/metrics", methods=["GET"]) @jwt_required_middleware -@plan_required("premium", "pro") def metrics(): + # plan check: premium or pro (or TEST_MODE via plan='pro' in DB) + user = getattr(_req, 'current_user', None) or {} + plan = user.get('plan', 'free') if isinstance(user, dict) else 'free' + if plan not in ('premium', 'pro'): + from flask import jsonify as _j + return _j({'error': 'Plan premium ou pro requis'}), 403 """ Mรฉtriques ML --- diff --git a/dashboard_saas.html b/dashboard_saas.html index 2787208..867126c 100644 --- a/dashboard_saas.html +++ b/dashboard_saas.html @@ -259,6 +259,7 @@ ๐Ÿ“… Historique ๐Ÿ“ค Export CSV + ๐Ÿ“ˆ Mรฉtriques ๐Ÿ“ฑ Alertes Telegram โšก API Token @@ -753,11 +754,59 @@ + +
+ diff --git a/portal_server.py b/portal_server.py index d144851..b1f5729 100755 --- a/portal_server.py +++ b/portal_server.py @@ -19,9 +19,13 @@ SAAS_DIR = "/home/h3r7/turf_saas" try: from saas_auth import auth_bp from saas_api_v1 import api_v1_bp + from api_v1.routes.ml_feedback import ml_feedback_bp + from api_v1.routes.metrics import metrics_bp app.register_blueprint(auth_bp) app.register_blueprint(api_v1_bp) + app.register_blueprint(ml_feedback_bp) + app.register_blueprint(metrics_bp) print("[portal] SaaS auth & API v1 blueprints registered โœ…") except Exception as e: print(f"[portal] Warning: could not register SaaS blueprints: {e}")