حالة مستخدم مجموعة Discourse

:information_source: الملخص يقيد ميزة حالة المستخدم لمجموعات محددة فقط
:hammer_and_wrench: رابط المستودع https://github.com/Lillinator/discourse-group-user-status
:open_book: دليل التثبيت كيفية تثبيت الإضافات في Discourse

:woman_technologist: نظرة عامة

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

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

الميزات

  • صلاحيات قائمة على المجموعات – تقييد تعيين حالة المستخدم لمجموعات مختارة (مستويات الثقة، مجموعات مخصصة، أو كليهما)
  • تجاوز من قبل المسؤول – يحتفظ المسؤولون دائمًا بصلاحيات الحالة بغض النظر عن اختيار المجموعة
  • تنظيف تلقائي – يزيل الحالات من المستخدمين عند فقدانهم للصلاحيات (عبر تغيير الإعدادات أو إزالة المجموعة)
  • تكامل واجهة المستخدم – يخفي عناصر التحكم في الحالة عن المستخدمين غير المصرح لهم

:gear: التثبيت والإعداد

  1. اتبع دليل تثبيت الإضافة القياسي.

  2. انتقل إلى Admin -> جميع إعدادات الموقع وابحث عن “user status” للوصول إلى إعدادات المسؤول ذات الصلة.

  3. تأكد من تمكين إعداد المسؤول الحالي Enable_user_status.

  4. ثم انتقل إلى إعداد المسؤول الجديد User_status_allowed_groups وحدد المجموعات المسموح لها باستخدام وعرض ميزة حالة المستخدم.

  5. لن تتمكن المجموعات غير المدرجة في قائمة إعداد User_status_allowed_groups من الوصول إلى نافذة حالة المستخدم من التبويب في قائمة المستخدم، ولا من تبويب preferences/account الخاص بها.

  6. إذا كان Enable_user_status مفعّلًا بالفعل وبعض المستخدمين لديهم حالات مستخدمين محددة، فستقوم هذه الإضافة بمسح حالاتهم ما لم يتم إضافتهم إلى الإعداد الجديد فورًا.

  7. كما سيقوم أيضًا بإزالة الحالة الموجودة إذا تم إزالة المستخدم من مجموعة مسموح بها إما عبر المسار /admin/users/ أو /admin/groups/ (أو إذا سُمح لهم بمغادرة المجموعة بأنفسهم وفعلوا ذلك).

  8. اختيار المجموعة الوهمية everyone لا يختلف عن تركه فارغًا بشكل افتراضي أو حتى عدم تثبيت المكون!

  9. يمكن للمسؤولين دائمًا تعيين حالتهم وتغييرها بغض النظر عن المجموعات المحددة؛ لذا، فإن اختيار مجموعة admins فقط سيقيّد استخدام حالة المستخدم لمسؤولي المنتدى.


:wrench: الإعدادات

توجد إعداد مسؤول واحد جديد تمت إضافته بواسطة الإضافة – User_status_allowed_groups، وهو قائمة منسدلة لمجموعات المنتدى. يمكن العثور عليه بالبحث عن user status في جميع إعدادات الموقع، وهو مدرج تحت قسم Group permissions في الشريط الجانبي للمسؤول.


:briefcase: حالات الاستخدام النموذجية

  • إذا كانت وظيفة حالة المستخدم ذات صلة فقط بموظفي المنتدى، وقد يرغبون في عرض حالة مستخدم لبقية المنتدى.

  • اسمح فقط لمسؤولي الأقسام بتعيين حالتهم.

  • يمكن استخدامها لمنع إساءة استخدام (أو سوء استخدام آخر) لميزة حالة المستخدم من قبل مجموعات مستخدمين أقل ثقة.

  • فقط المجموعات الخاصة يجب أن تكون قادرة على عرض حالتها – على سبيل المثال، فريق الدعم الفني، بائعي المنتجات، خبراء الأقسام، الرعاة، أساتذة الحيل باليو-يو، إلخ.

  • يُسمح للمسؤولين فقط بالذهاب لتناول القهوة :wink: :coffee:.


:bulb: ملاحظات: إشعارات وتكامل التقويم

تؤثر هذه الإضافة فقط على حالة المستخدم، وليس على إعدادات الإشعارات:

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

إذا كان لديك إضافة Discourse Calendar مثبتة:

  • حالات العطلات التي يتم تعيينها بواسطة إضافة Calendar لا تتأثر بهذه الإضافة.
  • حالة هامشية نادرة جدًا: إذا قام المستخدم بكتابة يدوية لحالة العطلة الخاصة به وتمت إزالة مجموعته من user_status_allowed_groups من قبل مسؤول خلال العطلة المجدولة، فسيتم مسح الحالة اليدوية.
  • تعيد إضافة Calendar تلقائيًا ضبط حالات العطلات كل 10 دقائق، لذا يتم استعادة أي حالة مسح في التشغيل المجدول التالي.
  • لا يمكن للمستخدمين تعيين أو تعديل الحالات يدويًا إذا لم يكونوا في مجموعة مسموح بها ولكن لديهم حاليًا حالة عطلة مجدولة.

:camera_flash: المزيد من لقطات الشاشة

لقطات شاشة لتأثير الإعداد على حالة المستخدم

يتم منح الإذن لاستخدام ميزة حالة المستخدم في إعداد User_status_allowed_groups. على سبيل المثال، مستخدم test-pilot هو TL_2 وينتمي إلى مجموعة purple؛ هنا يُسمح له بتعيين وعرض حالة مستخدم، إلى جانب Staff و TL_4:


بمجرد تغيير إعداد User_status_allowed_groups وإزالة مجموعة purple من الإعداد، يتم إزالة قدرة مستخدم test-pilot على استخدام ميزة حالة المستخدم من قائمة المستخدم وصفحة preferences/account الخاصة به، وإذا كانت لديه حالة مستخدم محددة مسبقًا، فسيتم مسحها عند تحديث الصفحة التالي. يحدث نفس التأثير عند إزالة المستخدم من المجموعة (أو مغادرته، إذا سُمح بذلك).


تصفح مواد Discourse الأخرى الخاصة بي
15 إعجابًا

عمل رائع! وموثق بشكل جميل. أتطلع إلى تجربته.

إعجاب واحد (1)