Acredito que isso seja um bug, mas fique à vontade para recategorizá-lo para Dev
Passos para reproduzir
-
Crie um tema acessando Admin > Temas > Comum >
</head>e cole o seguinte<script type="text/discourse-plugin" version="0.8.42"> const currentUser = api.getCurrentUser() const groupIds = currentUser.groups.map(x => x.id) console.log(`ID do usuário: ${currentUser.id} IDs dos grupos: ${groupIds} (${groupIds.length})`) </script> -
Simule diferentes usuários para ver quais grupos você recebe
-
Acesse o Data Explorer (ou o banco de dados) e execute a seguinte consulta
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 os IDs de usuário que você simulou GROUP BY u.id ORDER BY u.id
Saída do banco de dados
- 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
Saída da API
- ID do usuário: 2 IDs dos grupos: 1, 3, 10, 11, 12, 13, 14, 50, 63, 64, 68 (11)
- ID do usuário: 3 IDs dos grupos: 10, 53, 54, 59, 61, 75, 79, 88 (8) <= 7 grupos ausentes
- ID do usuário: 6 IDs dos grupos: 10, 54 (2) <= 4 grupos ausentes
A saída do banco de dados está correta (posso ver que esses usuários realmente têm esses grupos atribuídos na interface), então parece haver um problema na API. O que poderia estar causando a não transmissão de alguns grupos para currentUser.groups?
