Ich glaube, das ist ein Fehler, aber fühle dich frei, es in Dev neu zu kategorisieren.
Schritte zur Reproduktion
-
Erstelle ein Theme, indem du zu Admin > Themes > Common >
</head>gehst und dies einfügst:<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> -
Imponiere verschiedene Benutzer, um zu sehen, welche Gruppen du erhältst.
-
Gehe zum Data Explorer (oder zur DB) und führe diese Abfrage aus:
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) -- oder welche Benutzer-IDs du auch immer imponiert hast GROUP BY u.id ORDER BY u.id
DB-Ausgabe
- 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-Ausgabe
- 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 fehlende Gruppen
- User id: 6 Group ids: 10, 54 (2) <= 4 fehlende Gruppen
Die DB-Ausgabe ist korrekt (ich kann in der UI sehen, dass diese Benutzer diese Gruppen zugewiesen haben), also scheint es ein Problem in der API zu geben. Was könnte dazu führen, dass einige Gruppen nicht an currentUser.groups gesendet werden?
