مشرفو يقرؤون الرسائل في سجلات إجراءات الطاقم

نواجه مشكلة تتعلق بالخصوصية حيث يتمكن المشرفون من الوصول إلى رسائل لا ينبغي لهم الوصول إليها.

بما أستطيع تحديده، فإن لديسكورس هدفين تصميميين يتدخلان هنا:

  1. لا يُعفى المشرفون من فحوصات الصلاحيات، ولا يمكنهم قراءة الرسائل إلا إذا تمت دعوتهم إليها.
  2. عندما يستخدم المشرفون صلاحياتهم، يتم تسجيل أي إجراء يتخذونه ويمكن لأي عضو من الطاقم فحصه.

في بعض الأحيان، يتعارض هذان الهدفان، على سبيل المثال عندما يقوم مشرف بتحرير منشور لمستخدم آخر في رسالة مشتركة بينهما. في مثل هذه الحالات، يعطي ديسكورس الأولوية لـ :two:؛ حيث يُكشف منشور المستخدم الذي تم تحريره لجميع أعضاء الطاقم في سجلات إجراءات الطاقم.

بينما أنا أختلف بالفعل مع قرار إعطاء الأولوية لـ :two:، إلا أن هناك حالات هامشية أعتقد أنها غير مرغوب فيها بالتأكيد، وتصل إلى حد وجود bug. أكبر حالة وجدناها: يمكن للمشرفين حاليًا قراءة كل رسالة تحتوي على رابط لصورة خارجية، لأن @system يقوم بتحميل الصورة، وتحرير المنشور، ويتم إضافة ذلك إلى سجلات إجراءات الطاقم.

لست متأكدًا من الإجراء الصحيح هنا. هل نجعل وصول المشرفين إلى سجل إجراءات الطاقم قابلاً للتكوين؟ هل نمنع عرض المنشور في إدخالات سجل إجراءات الطاقم الصادرة عن @system؟ أم نجعل ميزة عرض المنشور تحترم بشكل عام صلاحيات المنشور؟

في كلتا الحالتين، آمل أن يحدث تغيير هنا، لأننا نضطر حاليًا إلى حظر الوصول إلى واجهة برمجة تطبيقات سجل إجراءات الطاقم على مستوى Nginx.

9 إعجابات

لا أعتقد أنه يجب تسجيل هذه التعديلات.

@هل يمكنك التأكد من عدم تسجيل هذه التعديلات المحددة جدًا من قبل مستخدم @system؟ (مع حذف السجلات الموجودة حاليًا)

10 إعجابات

تم تنفيذ ذلك في FIX: Do not log 'pull_hotlinked_images' edits in the staff action log · discourse/discourse@67a9894 · GitHub.

لاحظ أن المشرفين لا يزال بإمكانهم رؤية السجلات للرسائل الخاصة التي تم تعديلها من قبل شخص غير الكاتب.

هذا أمر معقد للأتمتة - فليس لدينا أي طريقة لمعرفة ما إذا كانت السجلات الحالية ناتجة عن “سحب الصور المرتبطة مباشرة”، أم أنها تم تعديلها كمستخدم النظام عبر واجهة برمجة التطبيقات. @fefrei إذا كنت ترغب في مسح السجلات القديمة لجميع تعديلات النظام في موقعك، يمكنك تشغيل أمر مشابه لهذا في وحدة التحكم:

UserHistory.where(action: UserHistory.actions[:post_edit], acting_user: Discourse.system_user).destroy_all
9 إعجابات

عظيم، شكرًا لك! :heart:

5 إعجابات