إنجاز: تفعيل خاصية استعادة كلمة المرور وإعادة تعيينها

- إضافة نقاط نهاية لخاصيتي استعادة كلمة المرور وإعادة تعيينها في الواجهة الخلفية.

- إنشاء اختبارات لخاصية إعادة تعيين كلمة المرور لضمان كفاءتها وأمانها.

- تطوير صفحات واجهة المستخدم لخاصيتي استعادة كلمة المرور وإعادة تعيينها مع معالجة النماذج.

- دمج حدود تحميل ديناميكية لأنواع ملفات مختلفة بناءً على خطط المستخدمين.

- تقديم أداة جديدة لتغيير حجم الصور مع إمكانية تعديل الأبعاد وإعدادات الجودة.

- تحديث نظام التوجيه والتنقل ليشمل أدوات جديدة وميزات مصادقة.

- تحسين تجربة المستخدم من خلال معالجة الأخطاء ورسائل التغذية الراجعة المناسبة.

- إضافة دعم التدويل للميزات الجديدة باللغات الإنجليزية والعربية والفرنسية.
This commit is contained in:
Your Name
2026-03-07 14:23:50 +02:00
parent 0ad2ba0f02
commit 71f7d0382d
27 changed files with 1460 additions and 7 deletions

View File

@@ -0,0 +1,32 @@
"""Public configuration endpoint — returns dynamic upload limits."""
from flask import Blueprint, jsonify
from app.services.policy_service import (
get_effective_file_size_limits_mb,
get_usage_summary_for_user,
resolve_web_actor,
FREE_PLAN,
)
config_bp = Blueprint("config", __name__)
@config_bp.route("", methods=["GET"])
def get_config():
"""Return dynamic upload limits and (if logged-in) usage summary.
Anonymous callers get free-plan limits.
Authenticated callers get plan-aware limits + quota usage.
"""
actor = resolve_web_actor()
file_limits_mb = get_effective_file_size_limits_mb(actor.plan)
payload: dict = {
"file_limits_mb": file_limits_mb,
"max_upload_mb": max(file_limits_mb.values()),
}
if actor.user_id is not None:
payload["usage"] = get_usage_summary_for_user(actor.user_id, actor.plan)
return jsonify(payload), 200