وضع القراءة فقط الجزئي

من وقت لآخر، نواجه موقفًا حيث يحتاج المنتدى إلى أن يكون في وضع “للقراءة فقط” لمنع إنشاء مشاركات جديدة.

ومع ذلك، من المزعج حقًا أن وضع القراءة فقط يمنع أيضًا تغييرات التكوين ومزامنة الدخول الموحد (SSO) وتسجيل الدخول.

سيكون من الرائع لو كان لدينا نوع من وضع القراءة فقط الجزئي حيث تكون المشاركات وإجراءات المشاركات فقط للقراءة فقط.

في الوقت الحالي، الشيء الوحيد الذي يمكنني التفكير فيه هو تجريد أذونات المشاركات من جميع مجموعات أمان الفئات، ولكن هذا أمر معقد للغاية ويتطلب تخزينها في مكان آخر في الوقت الحالي.

هل لدى أي شخص فكرة عن أفضل طريقة لتحقيق ذلك؟
ربما يكون هذا مجالًا للإضافات، ولكن مع ذلك: ما هو النهج الأفضل؟

14 إعجابًا

إعداد المكوّن الإضافي + الموقع يجب أن يفي بالغرض.

ربما جرب خطاف التحقق من صحة المنشور، وأضف تحققًا مخصصًا يعيد “غير صالح” إذا قام إعداد الموقع بتعيينه للقراءة فقط.

6 إعجابات

لقد استخدمت NewPostManager.add_handler، ويبدو أن حدث :validate_post يقوم فقط بالإعلام ولا يقدم فرصة لإرجاع نتيجة ورفض المنشور.

إليك إضافة تقوم بتعطيل النشر بلمسة زر: GitHub - communiteq/discourse-prevent-posting

الإعداد

انتقل إلى المسؤول - الإضافات - discourse-prevent-posting - الإعدادات

prevent posting enabled : تمكين الإضافة ومنع إنشاء منشورات جديدة.

prevent posting message : الرسالة التي ستظهر كإشعار عام عند تمكين الإضافة.

prevent posting allow pms : إذا تم تمكين هذا الخيار، فسيتم السماح بالرسائل الخاصة.

7 إعجابات

أعتقد أنه يجب علينا إضافة هذا إلى خارطة طريقنا @sam

7 إعجابات

بالتأكيد!

على الرغم من أنني أود تحديد الإعداد هنا، إلا أنه من المثالي أن نتمكن من ملاءمته جميعًا في إعداد موقع واحد بخيارات متعددة.

أود أولاً الحصول على مواصفات جيدة. بعض الأسئلة:

  • ماذا عن ردود الفعل والإضافات؟
  • ماذا عن ملفات تعريف المستخدمين؟
  • ماذا عن التسجيل بحسابات جديدة؟

أنا قلق أيضًا بشأن السماح بالكثير من الدقة هنا.

ربما يكون وضع صيانة بسيط قيد التشغيل/الإيقاف والسماح للمسؤولين دائمًا بتجاوزها، كافيًا؟

8 إعجابات

للإعلام/للعلم -

بالنسبة لمجتمعنا، يوفر هذا المكون الإضافي وضع “السبت”. الهدف الأساسي منه هو حث أعضاء المجتمع على أخذ ما اختبروه في سياقنا عبر الإنترنت وخدمة جيرانهم بمحبة في مجتمعاتهم المحلية.

المكونات الرئيسية وراء ما طوره ريتشارد هي:

  • القدرة على جدولة الأوقات الروتينية والمناسبة لتعطيل النشر وإعادة تشغيله. هناك القدرة على تعطيل النشر لعطلات نهاية الأسبوع (مستمرة) وأيضًا للعطلات الرئيسية (مناسبات).

  • القدرة على مزامنة هذا مع لافتة عالمية مخصصة حتى لا نربك المشاركين (“لماذا الموقع لا يعمل؟!”). بدلاً من ذلك، يمكننا أن نشرح بوضوح للزوار والأعضاء سبب تعطيل النشر مؤقتًا.

بالنسبة للأنشطة الأخرى:

  • تعطيل ردود الفعل يتوافق مع الرؤية الأصلية ولكنني أفترض أنه يمكن أن يكون مربع اختيار يمكن للمسؤولين تبديله لتوسيع تنوع إعدادات هذا الموقع.

  • لا أعتقد أن هذا المكون الإضافي يؤثر على أي مكونات إضافية أخرى.

  • يمكن إنشاء حسابات جديدة - يتم تعطيل النشر فقط.

إنه يعمل بشكل جميل. أنا متحمس لأن هذه القدرة قد يتم دمجها في خارطة الطريق.

3 إعجابات

@outofthebox في الواقع، الجدولة ليست جزءًا من هذه الإضافة، بل هي إضافة scheduled-readonly التي تعمل بشكل وثيق مع إضافة prevent-posting.

5 إعجابات

تصحيح كلامي! :slight_smile:

4 إعجابات

يسعدني معرفة ذلك، حيث كنت أجرب فكرة وضع السبت أو الإجازة، حيث قد أرغب في أخذ استراحة، خاصة إذا كنت أدير موقع Discourse الخاص بي جنبًا إلى جنب مع فصل دراسي.

أعتقد أنني سأجرب كلا المكونين الإضافيين، شكرًا لك!

تعديل: لقد اختبرت هذا للتو وجعلته يعمل على أحد مواقعي، ولكن عندما ذهبت لتعديل المكون الإضافي لإيقافه، قيل لي إنه في وضع القراءة فقط ولم أتمكن من تعديل الإعداد. حاولت النقر على “تعطيل وضع القراءة فقط” في المسؤول > النسخ الاحتياطي ولكن أعتقد أن المكون الإضافي كان يتجاوز الإعداد.

بمجرد تمكين المكون الإضافي وهو في فترة وضع القراءة فقط، هل هناك أي طريقة لتعطيله؟

تعديل 2: اضطررت إلى إعادة البناء بدون المكون الإضافي، حيث علق وفرض وضع القراءة فقط حتى بعد انتهاء الوقت. لا أعرف ما إذا كان النقر يدويًا على زر “تعطيل وضع القراءة فقط” قد تسبب في ذلك. أيضًا، لسبب ما، لم يتم تمكين فترة العطلة حتى في مثيل Discourse آخر، لذا أشعر بالحيرة :slight_smile:

إعجابَين (2)

أصبح شيء مشابه لما ورد في المنشور الأصلي ممكنًا الآن.

لقد أضفنا مؤخرًا وضع “الكتابة للموظفين فقط” - وهو وضع للقراءة فقط يؤثر فقط على غير الموظفين. يسمح للموظفين بتسجيل الدخول والنشر وتغيير الإعدادات وما إلى ذلك، بينما يرى المستخدمون الآخرون موقعًا في وضع القراءة فقط بشكل فعال.

الاستخدام

للتمكين، من وحدة التحكم، قم بتشغيل:

Discourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)

وللتعطيل:

Discourse.disable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)

آمل أن يكون هذا مفيدًا لك! أخبرني إذا كانت لديك أي أسئلة.

14 إعجابًا

هل هناك أي فرصة لتطبيق ADMIN_WRITES_ONLY_MODE_KEY لمنع إجراءات الإشراف أيضًا؟

لدي سيناريو استخدام حيث أضع المنتدى في وضع القراءة فقط، وأقوم بعمل نسخة احتياطية ثم أبقي المنتدى عبر الإنترنت ومتاحًا للعرض أثناء إعادة بناء الخادم الافتراضي الجديد من الصفر، واستعادة النسخة الاحتياطية ثم تبديل عنوان IP إلى الخادم الجديد بسلاسة دون انقطاع.

ستُفقد أي إجراءات إشرافية على الخادم القديم بعد النسخ الاحتياطي/وضع القراءة فقط بعد التبديل المباشر إذا تم إعفاء المشرفين من الوضع الجزئي للقراءة فقط.

أنا حاليًا أستخدم وضع القراءة فقط بالكامل، ولكنه مرهق لأنه يمنع أيضًا تغييرات المسؤول باستخدام واجهة الويب.

3 إعجابات

تم إغلاق هذا الموضوع تلقائيًا بعد 13 يومًا. لم تعد الردود الجديدة مسموح بها.

الآن بعد إضافة هذا، هل هناك أي خطط لإضافته كخيار إلى المكون الإضافي للقراءة فقط المجدولة؟

3 إعجابات

فكرة جيدة. سأضع ذلك في قائمة المشاريع الممتعة الخاصة بي وفي غضون ذلك، نرحب بطلبات السحب (PRs) أيضًا :slight_smile:

3 إعجابات

فقط للتنبيه لأي شخص يختبر المكون الإضافي للقراءة فقط المجدول، لقد وضعت حالة اختبار لمدة دقيقتين تقريبًا، وقد أربكتني لماذا لم يتم إيقاف تشغيله - اتضح أنه يتحقق كل 5 دقائق فقط.

إعجابَين (2)

إذا كان بإمكان المسؤول إرسال رسائل دردشة في وضع القراءة فقط، فسيكون ذلك رائعًا