هل من الممكن إنشاء فئة خاصة يمكن استخدامها فقط من قبل مجموعة مخصصة، ومزامنة عضوية هذه المجموعة مع قاعدة بيانات خارجية؟
أفكر في إنشاء فئة على منتدى عام لمرآة قائمة بريد إلكتروني خاصة. ليس كل شخص في إحدى القوائم موجودًا في الأخرى. ولتحقيق ذلك، سيتطلب الأمر من Discourse (أو سكريبت منفصل) إضافة وإزالة المستخدمين الحاليين في Discourse إلى المجموعة المخصصة ومنها، بناءً على من هو عضو في قائمة البريد الإلكتروني في وقت معين.
في هذه الحالة، سأحتاج إلى تثبيت ووردبريس فقط كجسر بين ميلمان وديسكورد. أنا متأكد من أنه يمكنني مزامنة المستخدمين بين ميلمان ووردبريس. لكن هذا سيكون استخدامًا مبالغًا فيه لحل مشكلة بسيطة.
لقد اطّلعت للتو على صفحة توثيق واجهة برمجة تطبيقات Discourse. فمن الممكن الحصول على قائمة بالمستخدمين (التي تحتوي على أسماء المستخدمين)، والحصول على مستخدم حسب اسم المستخدم (التي تحتوي على مجموعات المستخدم)، وإضافة مستخدم إلى مجموعة، وإزالة مستخدم من مجموعة. أظن أنه يمكنني تشغيل مهمة مجدولة بانتظام لضمان أن أعضاء مجموعة Discourse الخاصة هم فقط المشتركون الحاليون في قائمة Mailman.
حل API مشابه لذلك هو ما أنصح به. لستُ على علم بوجود حل يربط بين Mailman و Discourse مباشرة. إذا كنت تشغّل خادم Mailman، يمكنك إضافة معالجات (hooks) هناك لإضافة أو إزالة الأشخاص من مجموعة Discourse عند تغيير حالة اشتراكهم، لكن من المرجح أن يكون تشغيل مهمة مجدولة يومية (cronjob) لمزامنتهم أسهل وفعالاً تقريباً بنفس القدر. اعتماداً على عدد المشتركين ومعدل الدوران، يمكنك أيضاً اللجوء إلى حلول أقل تعقيداً تقنيًا، مثل السماح للأشخاص بطلب الانضمام إلى المجموعة، أو استخدام الطريقة الموضحة في: Invite users to a group.