يتم تجاوز مراجعة الوسائط عندما تكون image_sizes فارغة

يتعلق هذا الخطأ بإعداد تخطي مراجعة مجموعات الوسائط.

عند نشر صورة من الهاتف المحمول، تنجح عملية رفع الصورة ويحتوي نص المنشور بشكل صحيح على مرجع للصورة (على سبيل المثال، ...).

ومع ذلك، تحتوي طلبات POST /posts اللاحقة على:

“image_sizes”: {}

لا يتم تشغيل فحص مراجعة الوسائط من جانب الخادم إلا عندما يكون manager.args[:image_sizes].present؟:

if manager.args\[:image_sizes\].present? &&
       !user.in_any_groups?(SiteSetting.skip_review_media_groups_map)
    return :contains_media
  end

لا يُعتبر القاموس الفارغ موجودًا (present) في لغة روبي، لذلك لا يتم تحديد المنشور على أنه يحتوي على وسائط ولا يُرسل للمراجعة. وبالتالي، لا يتم الوصول أبدًا إلى فحص skip_review_media_groups.

أدلة HAR:

  • نجح طلب POST /uploads (2xx).
  • يحتوي حمولة طلب POST /posts على نص صورة بتنسيق Markdown في الحقل raw.
  • تحتوي نفس الحمولة على “image_sizes”: {}.
  • لم يتم وضع المنشور في قائمة الانتظار للمراجعة.

يقوم محرر الويب ببناء image_sizes من الصور الموجودة في عنصر DOM الخاص بمعاينة المحرر. هذا يجعل مراجعة الوسائط تعتمد على بيانات التعريف الخاصة بالمعاينة المقدمة من العميل، والتي قد تكون مفقودة على عملاء الهاتف المحمول
أو إذا لم يتم تحميل صورة المعاينة.

السلوك المتوقع: يجب أن يدخل المنشور الذي يحتوي على صورة مُرفعة أو مُضمنة في مراجعة الوسائط بغض النظر عما إذا كان العميل يرسل أبعاد الصورة.

الإصلاح المقترح:

  1. اكتشاف الوسائط من جانب الخادم من محتوى المنشور — تحديد ما إذا كان المنشور يحتوي على وسائط من خلال فحص محتوى المنشور raw أو cooked (أو مراجعات الرفع) على الخادم، بدلاً من الاعتماد فقط على حقل image_sizes المقدم من العميل.

  2. مراجعة جميع ملفات الوسائط المُرفعة (أفضل من الخيار 1) — بدلاً من مراجعة ملفات الوسائط التي تظهر داخل منشور فقط، قم بمراجعة كل ملف وسائط يرفعه المستخدم مباشرة. هذا يلغي الاعتماد على بيانات التعريف على مستوى المنشور تمامًا ويضمن عدم تجاوز أي وسائط مُرفعة قائمة الانتظار للمراجعة، بغض النظر عن العميل أو نقطة النهاية المستخدمة.