يشرح هذا الدليل أوضاع القراءة فقط المختلفة المتوفرة في Discourse، وكيفية تمكينها وتعطيلها، والسيناريوهات التي قد ترغب في استخدام كل وضع فيها.
مستوى المستخدم المطلوب: مسؤول
تتطلب إدارة مجتمع نابض بالحياة عبر الإنترنت على Discourse أحيانًا من المسؤولين تقييد أنشطة المستخدم مؤقتًا. يمكن أن تتراوح هذه المواقف من إجراء صيانة الخادم، أو تسهيل النسخ الاحتياطي، أو الانتقال بين الخوادم. خلال هذه الأوقات، من الضروري تقييد أنشطة المنتدى دون إغلاق وصول المستخدم بالكامل.
توفر Discourse أوضاع قراءة فقط مختلفة يمكن للمسؤولين تمكينها لتجميد أنواع مختلفة من التفاعلات داخل الموقع مؤقتًا.
يستكشف هذا الدليل هذه الأوضاع، مع التركيز بشكل خاص على كيفية تمكينها وتعطيلها، بما في ذلك التعامل مع المواقف التي تتداخل فيها أوضاع معينة.
فهم أوضاع القراءة فقط
يدعم Discourse مستويين مختلفين من أوضاع القراءة فقط المصممة لتناسب احتياجات إدارية متنوعة. وهي:
-
وضع القراءة فقط الكامل
- يقيد جميع عمليات الكتابة في المنتدى، مما يمنع أي مستخدم من إنشاء أو تعديل المحتوى، مثل النشر أو التعليق أو الإعجاب.
- يسمح للمنتدى بأن يكون “مجمدًا” في حالته الحالية، بحيث لا يزال بإمكان المستخدمين قراءة المحتوى الحالي والتنقل فيه دون التأثير على قاعدة البيانات.
- يمنع تغيير أي إعدادات للموقع الإداري أو تخصيصات الموقع للحفاظ على الحالة الحالية لقاعدة البيانات.
- يمنع تسجيل الدخول الجديد للمنتدى.
-
وضع كتابة الموظفين فقط
- يقيد المستخدمين القياسيين من عمليات الكتابة في المنتدى، مثل النشر أو التعليق أو الإعجاب. يقتصر المستخدمون القياسيون على عمليات القراءة فقط، ولن يتمكنوا من تسجيل الدخول إلى حساباتهم بمجرد تمكين هذا الوضع.
- يسمح لأنشطة المسؤول والمشرف بالاستمرار بشكل طبيعي. يمكن للمسؤولين تغيير إعدادات الموقع، ويمكن لمستخدمي الموظفين إجراء عمليات كتابة مثل النشر أو الإعجاب أو تعديل الملفات الشخصية.
تضمن هذه الأوضاع المرونة في إدارة تشغيل المنتدى خلال فترات إدارية حرجة.
كيفية تمكين/تعطيل أوضاع القراءة فقط
يجب على المسؤولين إدارة الانتقال بين أوضاع القراءة المختلفة بعناية. قبل تمكين أي وضع قراءة فقط، تأكد من تعطيل أي وضع تم تنشيطه مسبقًا.
وضع القراءة فقط الكامل
عبر وحدة تحكم Rails
إذا كان لديك حق الوصول إلى تثبيت Discourse الخاص بك، فاستخدم واجهة سطر أوامر Discourse rails لتنفيذ الأمر التالي بعد الدخول إلى حاوية Docker الخاصة بك باستخدام ./launcher enter app ثم وحدة تحكم rails باستخدام rails c:
Discourse.enable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
عبر لوحة تحكم المسؤول
إذا كان لديك حق الوصول الإداري عبر واجهة الويب، يمكنك الانتقال إلى Admin > Backups > Enable Read-Only Mode لتمكين وضع القراءة فقط.
لتعطيل وضع القراءة فقط، قم بتنفيذ أمر rails التالي:
Discourse.disable_readonly_mode(Discourse::USER_READONLY_MODE_KEY)
أو، استخدم لوحة تحكم المسؤول بالانتقال إلى Admin > Backups > Disable Read-Only Mode.
وضع كتابة الموظفين فقط
لا يمكن تمكين / تعطيل وضع كتابة الموظفين فقط إلا من وحدة تحكم Rails الخاصة بـ Discourse. إذا كان موقعك مستضافًا بواسطة Discourse، فيرجى التواصل مع team@discourse.org إذا كنت ترغب في تمكين أو تعطيل أي من هذين الوضعين.
لتمكين وضع كتابة الموظفين فقط، استخدم أمر وحدة تحكم Rails التالي:
Discourse.enable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
للتعطيل:
Discourse.disable_readonly_mode(Discourse::STAFF_WRITES_ONLY_MODE_KEY)
أفضل الممارسات
- التواصل في الوقت المناسب: أبلغ مجتمعك بفترات القراءة المجدولة مسبقًا لضبط التوقعات بشكل صحيح.
- الاختبار: قبل تطبيق هذه الأوضاع خلال العمليات الحرجة، قم بإجراء اختبارات خلال فترات انخفاض حركة المرور لفهم تأثيرها.
- التوثيق: احتفظ بسجلات مفصلة عن وقت وسبب تمكين أو تعطيل كل وضع للمساعدة في التخطيط التشغيلي المستقبلي.
الأسئلة الشائعة
-
كم من الوقت يستغرق تمكين/تعطيل وضع القراءة فقط؟
- التغيير فوري. ومع ذلك، قد تختلف تجربة المستخدم قليلاً اعتمادًا على إجراءاتهم خلال فترة الانتقال.
-
مساعدة! لقد تم قفلي من موقعي بسبب وضع القراءة فقط - ماذا يمكنني أن أفعل للوصول إلى موقعي مرة أخرى؟
-
لاحظت أن هناك أوضاع
READ-ONLYأخرى مدرجة في discourse/lib/discourse.rb، ماذا تفعل هذه الأوضاع؟- يُستخدم
READONLY_MODE_KEYبشكل أساسي لعملية النسخ الاحتياطي والاستعادة ويتم تشغيله بواسطة التطبيق نفسه. يمكن أيضًا تمكين هذا الوضع أو تعطيله من واجهة سطر أوامر Discourse باستخدامdiscourse enable_readonlyوdiscourse disable_readonly. ومع ذلك، لن ينجو هذا المفتاح من إعادة تشغيل الحاوية. - يُستخدم
USER_READONLY_MODE_KEYعندما ينقر المسؤول على زر القراءة فقط في واجهة المسؤول. الشيء الخاص بهذا المفتاح هو أننا لا نحدده كمفتاح منتهي الصلاحية لأن القراءة فقط التي يتم تمكينها بواسطة المستخدم تحتاج إلى البقاء على قيد الحياة بعد إعادة تشغيل الحاوية. يتم تعيين المفاتيح الأخرى بـ TTL مدته 60 ثانية ولدينا خيط لتمديد انتهاء الصلاحية كل 30 ثانية لضمان عدم تعليق التطبيق أبدًا في وضع القراءة فقط. - يُستخدم
PG_READONLY_MODE_KEYوPG_FORCE_READONLY_MODE_KEYلفشل PG. يتم تعيين الأول كمفتاح منتهي الصلاحية بينما الثاني غير منتهي الصلاحية.
- يُستخدم

