تحديد المستخدمين في مجموعات متعددة باستخدام AND بدلاً من OR؟

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

إذا كانت إضافة مستكشف البيانات متاحة على موقعك، يمكنك استخدام استعلام مستكشف البيانات الذي يُرجع قائمة بجميع مستخدمي المجموعة المستهدفة الذين لديهم المستوى الاستئماني 3. إذا لم تكن تتعامل مع عدد كبير من المستخدمين، فيجب أن تكون قادرًا على نسخ/لصق أسماء المستخدمين التي تم إرجاعها من الاستعلام مباشرة في نموذج إضافة المستخدمين للمجموعة. يبدو أن Discourse يتعامل مع إضافة أسماء المستخدمين الموجودة بالفعل في مجموعة إلى هذا النموذج، لذلك إذا قمت بتشغيل الاستعلام بشكل دوري، فيجب أن تكون قادرًا على الاستمرار في نسخ أسماء المستخدمين التي تم إرجاعها إلى نموذج إضافة المستخدمين للمجموعة. ملاحظة، لست متأكدًا من الحد الأقصى لعدد أسماء المستخدمين التي يمكن لصقها في النموذج. لقد اختبرتها للتو مع 80 مستخدمًا وهذا يعمل دون مشكلة. أيضًا، إذا حاولت لصق قائمة متطابقة تمامًا من المستخدمين في نموذج إضافة المستخدمين، يبدو أن Discourse يُرجع خطأ. يمكن تجاهل الخطأ مع ذلك.

إليك الاستعلام الذي اختبرته. تحتاج إلى توفير اسم المجموعة، على سبيل المثال ‘year_2’، قبل تشغيل الاستعلام.

--[params]
-- string :group_name

SELECT u.username
FROM group_users gu
JOIN groups g ON g.id = gu.group_id
JOIN users u ON u.id = gu.user_id
WHERE g.name = :group_name
AND u.trust_level = 3

سيكون من الممكن أتمتة العملية المذكورة أعلاه عن طريق تشغيل استعلام مستكشف البيانات عبر واجهة برمجة التطبيقات (API)، ثم استخدام نتائج طلب واجهة برمجة التطبيقات لتحديث المجموعة. التفاصيل حول ذلك هنا: تشغيل استعلامات مستكشف البيانات باستخدام واجهة برمجة تطبيقات Discourse. ستحتاج بعد ذلك إلى تحديث أعضاء المجموعة عبر واجهة برمجة التطبيقات.

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

4 إعجابات