أود اقتراح تقسيم إعداد “المجموعات المسموح لها بحذف جميع المنشورات والمواضيع” إلى أذونات أضيق.
في الوقت الحالي، يكون الإعداد واسع النطاق: فهو يسمح للمجموعات المحددة بحذف المنشورات والمواضيع التي أنشأها مستخدمون آخرون، وكذلك بعرض المنشورات/المواضيع المحذوفة. وهذا منطقي للمدراء أو لمجموعات المراقبة الموثوقة، لكنه قوي جداً لحالة الاستخدام التي أريد فيها فقط أن يتمتع المستخدمون بدرجة أكبر من التحكم في محتواهم الخاص.
وللتوضيح، لا أعني الحذف الدائم أو الحذف الصارم من قاعدة البيانات.
إنني أركز بشكل أساسي على سلوك الحذف/تاريخ التعديل الموجه للمستخدمين العاديين: فعلى سبيل المثال، عندما يحذف المستخدم منشوره الخاص، هل يترك ذلك البديل المعتاد للمنشور المحذوف؟ هل يظل محتوى التعديلات السابقة متاحاً عبر واجهة مستخدم تاريخ التعديل؟ وهل يمكن وجود إذن أضيق لإدارة ذلك في منشورات المستخدم الخاصة فقط؟
قد يكون التقسيم الممكن كالتالي:
مجموعات مسموح لها بحذف منشورات ومواضيع المستخدم الخاصة
مجموعات مسموح لها بحذف جميع المنشورات والمواضيع
ينطبق الإعداد الأول فقط على المحتوى الذي أنشأه المستخدم الحالي. أما الإعداد الثاني فيحافظ على السلوك الأوسع الحالي للمجموعات الموثوقة التي يُسمح لها بحذف محتوى المستخدمين الآخرين وعرض المحتوى المحذوف.
سيجعل هذا الأمر من الأسهل اتباع تصميم الأدوار وفق مبدأ أقل امتيازات. فعلى سبيل المثال، قد ترغب موقع في منح مستويات TL4/القادة، أو مجموعة موثوقة مخصصة، سيطرة أكبر على حذف منشوراتهم/مواضيعهم الخاصة دون منحهم في الوقت نفسه سلطة تشبه سلطة المراقبة على محتوى المستخدمين الآخرين.
أدرك أنه سيكون هناك حاجة إلى ضوابط، خاصة عندما يؤثر حذف المنشور الأول على موضوع يحتوي على ردود من مستخدمين آخرين. في مثل هذه الحالات، يمكن لمنصة Discourse الإبقاء على القيد الحالي، أو اشتراك تدخل من المدراء، أو تقييد إذن المحتوى الخاص بالردود/المواضيع التي لا تحتوي على ردود.
الطلب الرئيسي هو وجود إذن منفصل لحذف المحتوى الخاص/تاريخ التعديل، منفصل عن إذن الحذف العام الحالي، حتى لا يضطر المشرفون إلى الاختيار بين الحذف الناعم للمستخدمين العاديين وإذن أوسع بكثير باسم “يمكن حذف منشورات/مواضيع المستخدمين الآخرين”.
أعتقد أن جزءًا من اللبس هنا هو أنه قد يكون هناك تمييز بين فحوصات «عرض المحتوى المحذوف» المختلفة.
بالنظر إلى PostGuardian، لا يبدو أن المنشور المحذوف فرديًا يصبح مرئيًا عبر can_see_post? لمجرد أن المستخدم موجود في delete_all_posts_and_topics_allowed_groups.
على سبيل المثال، يبدو أن رؤية المنشورات المحذوفة بشكل فردي تمر عبر:
def can_see_deleted_post?(post)
return false if !post.trashed?
return false if @user.anonymous?
return true if is_staff?
post.deleted_by_id == @user.id && @user.has_trust_level?(TrustLevel[4])
end
لذلك، لن يتمكن مستخدم غير من طاقم العمل من مستوى الثقة 2 (TL2) وموجود في delete_all_posts_and_topics_allowed_groups بالضرورة من فتح أو قراءة نص كل منشور محذوف عبر can_see_post?.
ومع ذلك، يُستخدم نفس الإعداد هنا أيضًا:
def can_see_deleted_posts?(category = nil)
is_category_group_moderator?(category) ||
@user.in_any_groups?(SiteSetting.delete_all_posts_and_topics_allowed_groups_map)
end
وهذا يعني أن الإعداد لا يزال أوسع مفاهيميًا من مجرد «يمكن للمؤلف سحب محتواه الخاص». ويبدو أنه يُستخدم كلًا لحذف منشورات/مواضيع مستخدمين آخرين مرئية ولتوفير إمكانيات عرض/تعداد المنشورات المحذوفة على الأقل في بعض الحالات.
لذا، فإن قلقي أقل من «أن هذا الإعداد يعرض بالتأكيد نص كل منشور محذوف في كل نقطة نهاية»، وأكثر من أن الإذن الحالي يجمع بين عدة مفاهيم:
حذف منشورات/مواضيع مستخدمين آخرين؛
رؤية أو تعداد المنشورات/المواضيع المحذوفة في بعض السياقات؛
منح المؤلفين تحكمًا أكبر في بصمتهم الخاصة.
في حالة الاستخدام الخاصة بي، أود فقط الخيار الثالث.
ولهذا السبب أعتقد أن إعدادًا خاصًا بالمحتوى الخاص سيكون أنقى. يمكنه السماح للمستخدم بحذف/سحب منشورات/مواضيعه الخاصة، مع مراعاة الضمانات الموجودة، دون منح صلاحيات أوسع تشبه صلاحيات الإشراف على محتوى مستخدمين آخرين أو رؤية المحتوى المحذوف.
لتوضيح سلوك واجهة المستخدم، أرغب في الآتي: لا أطلب أن يصبح المحتوى المحذوف مرئيًا للمستخدمين العاديين.
بالنسبة لإذن حذف المحتوى الخاص، فإن السلوك المثالي سيكون حساسًا للمشاهد:
يمكن للمؤلف رؤية أن منشوره قد تم سحبه/حذفه، ربما باستخدام نمط المنشور المحذوف الأحمر المعتاد أو حالة الانكماش، حتى يفهم ما حدث ويمكنه استعادته إذا كان الاسترداد مسموحًا به؛
يحتفظ الموظفون/المشرفون بأي رؤية تدقيقية أو إدارية مناسبة؛
لا ينبغي للمستخدمين العاديين رؤية أي أثر للمحتوى المحذوف على الإطلاق - لا نص المنشور، ولا سجل التعديلات، ويُفضل أيضًا عدم وجود أي عنصر نائب يشير إلى منشور محذوف.
لذا، فإن التمييز الذي أطلبه هو سيطرة المؤلف على بصمته المرئية الخاصة به، دون منح المستخدمين غير الموظفين رؤية المحتوى المحذوف أو سلطة عالمية على منشورات/مواضيع المستخدمين الآخرين.
من خلال النظر في PostRevisor، يتم تخزين سجل التعديلات بشكل منفصل عبر PostRevision، لذا لا أقترح أن يكون إذن حذف المحتوى الخاص بالضرورة مرتبطًا بحذف سجلات التعديلات بشكل نهائي أو إزالة إمكانية التدقيق.
الإذن الذي أتخيله يتعلق أكثر بالوضوح للمستخدمين العاديين: ما إذا كان بإمكان المؤلف سحب منشوره/موضوعه الخاص، وما إذا كان النص البديل للمنشور المحذوف يبقى موجودًا، وما إذا كان بإمكان المستخدمين العاديين رؤية محتوى التعديلات السابقة، وما إذا كان الموظفون/المشرفون يحتفظون بأي صلاحية تدقيق/مراقبة مناسبة (مثل عبر خيار «عرض الرد المخفي N»).
إذن الانقسام الذي أطلبه ليس:
«السماح للمستخدمين بمحو جميع الآثار من قاعدة البيانات»
بل بالأحرى:
«السماح للمستخدمين بالتحكم أكثر في محتواهم الظاهر/أثرهم الرقمي»
دون منحهم أيضًا سلطات عالمية لحذف محتوى المستخدمين الآخرين أو رؤية المحتوى المحذوف بشكل عام.