Je pense qu’il s’agit d’un bug, mais n’hésitez pas à le reclasser dans Dev si nécessaire.
Étapes pour reproduire le problème
-
Créez un thème en allant dans Admin > Thèmes > Commun >
<head>et collez le code suivant :<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> -
Faites-vous passer pour différents utilisateurs afin de voir quels groupes vous obtenez.
-
Accédez à l’Explorateur de données (ou à la base de données) et exécutez la requête suivante :
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) -- ou les IDs d'utilisateurs que vous avez imités GROUP BY u.id ORDER BY u.id
Résultat de la base de données
- 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
Résultat de l’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 groupes manquants
- User id: 6 Group ids: 10, 54 (2) <= 4 groupes manquants
Le résultat de la base de données est correct (je peux voir dans l’interface utilisateur que ces utilisateurs ont bien ces groupes attribués), il semble donc y avoir un problème au niveau de l’API. Qu’est-ce qui pourrait empêcher certains groupes d’être envoyés à currentUser.groups ?
