أعتقد أن هذا خطأ، لكن لا تتردد في إعادة تصنيفه إلى Development
خطوات التكرار
-
أنشئ سمة بالانتقال إلى Admin > Themes > Common >
</head>والصق الكود التالي<script type="text/discourse-plugin" version="0.8.42"> const currentUser = api.getCurrentUser() const groupIds = currentUser.groups.map(x => x.id) console.log(`User id: ${currentUser.id} Group ids: ${groupIds} (${groupIds.length})`) </script> -
تظاهر بتسجيل الدخول كمستخدمين مختلفين لترى المجموعات التي تحصل عليها
-
انتقل إلى Data Explorer (أو قاعدة البيانات) وشغّل استعلام قاعدة البيانات التالي
SELECT u.id, array_agg(group_id), count(group_id) FROM group_users gu LEFT JOIN users u ON u.id = gu.user_id LEFT JOIN GROUPS g ON g.id = gu.group_id WHERE user_id IN (2, 3, 6) -- أو أي معرفات مستخدمين تظاهرت بها GROUP BY u.id ORDER BY u.id
مخرجات قاعدة البيانات
- 2 {1,3,10,11,12,13,14,50,63,64,68} 11
- 3 {2,3,10,11,12,13,14,53,54,59,61,75,77,79,88} 15
- 6 {10,11,54,75,77,87} 6
مخرجات واجهة برمجة التطبيقات (API)
- User id: 2 Group ids: 1, 3, 10, 11, 12, 13, 14, 50, 63, 64, 68 (11)
- User id: 3 Group ids: 10, 53, 54, 59, 61, 75, 79, 88 (8) <= 7 مجموعات مفقودة
- User id: 6 Group ids: 10, 54 (2) <= 4 مجموعات مفقودة
مخرجات قاعدة البيانات صحيحة (يمكنني رؤية أن هؤلاء المستخدمين لديهم تلك المجموعات مُعيّنة في الواجهة)، لذا يبدو أن هناك مشكلة في واجهة برمجة التطبيقات (API). ما الذي قد يتسبب في عدم إرسال بعض المجموعات إلى currentUser.groups؟
