حاليًا، تكون إدخالات الأحداث دائمًا جزءًا من عنصر واجهة التقويم الذي يمكن إضافته إلى فئة. لا توجد طريقة لتقييد حدث لمجموعة مستخدمين خاصة. إذا كان لديك إعداد Discourse متعدد المجتمعات، فستشاهد جميع المجتمعات جميع أحداث جميع المجتمعات الأخرى. إذا عرضت أحداث Discourse خارجيًا على موقع ويب من خلال استدعاء API مثل
يجب أن تكون هناك خيار لإنشاء أحداث “داخلية” تُعرض فقط ضمن مجموعة مستخدمين. يجب ألا تكون هذه الأحداث قابلة للقراءة عبر طلب ICS العام. وبدلاً من ذلك، يجب أن تكون متاحة فقط إما باستخدام “مفتاح API للمجموعة” خاص إضافي أو نوع آخر من القيود الآمنة. حالة الاستخدام هي الاختيار بين الأحداث “العامة” والأحداث “الخاصة” التي تكون مرئية وقابلة للتعديل فقط ضمن مجموعة مستخدمين خاصة.
هل يمكن أن يناسب حالتك إنشاء مستخدم ينتمي فقط إلى المجموعة التي تحتاجها، وتوليد رابط اشتراك التقويم من تفضيلات ذلك المستخدم؟ سيتضمن الخلاصة (Feed) في هذه الحالة فقط الأحداث التي يمكن لهذا المستخدم رؤيتها.
ممم، أنا غير متأكد. يبدو كحل مؤقت، وليس حلاً حقيقياً
يجب أن يكون بإمكان جميع الأشخاص ضمن مجموعة محددة للمجتمع إنشاء أحداث. كما يجب أن يتمكنوا من رؤيتها عند دخولهم إلى فئة “مجتمعهم”. هذا يعمل بالفعل بشكل جيد في إعدادنا الحالي مع 5 مجتمعات مختلفة. نستخدم صلاحيات الفئات التالية:
فئة واحدة لكل مجموعة مجتمع. هذه الفئة لديها صلاحية “قراءة عامة فقط” و"قراءة/إنشاء/رد للمجتمع". هذه الفئة مُوحَّدة عبر AP للسماح للأشخاص الذين لا يملكون حسابات Discourse برؤية الأحداث، وكذلك للسماح بدمج تقويم Discourse في أنظمة طرف ثالث (مثل WordPress مع إضافة ICS)
عدد متغير من الفئات الفرعية الداخلية. هذه الفئات الفرعية لديها فقط صلاحيات “قراءة/إنشاء/رد للمجتمع”. وهي غير مرئية بدون صلاحيات المجموعة المناسبة.
أولاً، نظرت في إعدادات النطاق “دقيق”، لكنني لم أجد أي قيد على نقاط نهاية “الأحداث”. على الرغم من أن “الأحداث” مدرجة كمجموعة استعلام في Discourse API Docs
استخدمت “قراءة فقط” بدلاً من ذلك. النتيجة: “ليس لديك صلاحية لعرض المورد المطلوب.”
curl -kv https://xxx/discourse-post-event/events.ics?user_api_key=xxx لا يعيد ملف ics عند استخدام مفتاح API بمستوى “مستخدم واحد”. ويعيد قائمة كاملة بالأحداث مع مستوى مستخدم “جميع المستخدمين”. لا أرى طريقة لـ “تصفية” أحداث مجموعة مستخدمين خاصة.
كما قمت بفحص https:[xxxx]/admin/plugins/discourse-events/settings بحثًا عن أي إعدادات خاطئة محتملة تتعلق بـ API، دون أي نتائج