تحديث سريع حول التقدم بعد الغوص في كود الحذف الدائم الحالي:
وجدت أن Discourse يمتلك بالفعل سلوك الحذف الجماعي الفعلي المطلوب هنا. عند تدمير أول منشور بشكل دائم، يمكن لـ PostDestroyer بالفعل تدمير المنشورات المتبقية في الموضوع بشكل دائم بشكل متكرر. القيد الرئيسي يكمن في فحوصات الصلاحيات/السياسات التي تتطلب حاليًا حذف المنشورات الأخرى بشكل دائم أولاً.
لذلك، ابتعدت عن التعداد الشامل للموقع الذي اقترحته أعلاه، وأصبحت لديّ نسخة عمل تعمل باستخدام نموذج اختيار أكثر حذرًا:
- يبقى الإعداد الموجود
can_permanently_deleteكمفتاح رئيسي - هناك بوابة إضافية على مستوى المشغلين، مخفية ومعطلة افتراضيًا
- عند تمكين كلاهما، يمكن لكل مدير أن يختار المشاركة بشكل فردي تحت الإعدادات → الواجهة
- اختيار أحد المدراء للمشاركة لا يغيّر السلوك لأي مدير آخر
- تعطيل البوابة المخفية يعيد السلوك الحالي على الفور على مستوى الموقع
- تبقى تأكيدات الحذف الدائم الحالية ووسائل الحماية الأخرى سارية
يُسمّى التفضيل حاليًا:
السماح بحذف الموضوع الدائم بحذف جميع المنشورات
مع الشرح:
عند حذف موضوع بشكل دائم، احذف أيضًا جميع المنشورات المتبقية بشكل دائم بدلاً من طلب حذفها بشكل دائم بشكل فردي.
أضفت اختبارات سياسة/أمان للخلفية، وتغطية للتحكم تؤكد أن الموضوع وجميع المنشورات المتبقية تُزال فعليًا بشكل دائم، وتغطية المخصّص/واجهة برمجة التطبيقات، واختبارات قبول للواجهة الأمامية لظهور التفضيل وحفظه. وهي ناجحة.
أنا أنظر أيضًا إلى تسجيل التغييرات على هذا الاختيار الفردي لكل مدير في سجلات إجراءات الموظفين، لأن تمكين وضع حذف أكثر تدميرًا يبدو جديرًا بأن يكون حدث تدقيق موقوتًا.
سأقوم بنشر طلب الجيت هاب (GitHub PR) بعد انتهائي من ذلك والمراجعة النهائية.