Contexte
Nous disposons d’un système permettant d’ajouter programmatiquement des utilisateurs à des groupes via l’API, et de créer automatiquement des messages privés pour des groupes individuels, le tout via l’API.
Par exemple, nous pouvons avoir un groupe nommé : cooking-class-101
Pour lequel nous créerons un message privé avec cooking-class-101 et system en tant que deux participants au message privé.
Cela a très bien fonctionné pour nous en tant que moyen de créer automatiquement des chats de groupe privés pour des groupes de personnes.
Le Problème
Le problème que nous constatons est que pour les utilisateurs réguliers qui font partie du groupe, le bus de messages ne renvoie aucune mise à jour lorsque de nouveaux messages sont ajoutés au sujet.
Par exemple, nous avons un message privé de groupe avec l’ID de sujet 123. Nous pouvons voir que le bus de messages est abonné au canal topic/123, pourtant si un autre utilisateur publie un message sur le sujet, rien n’est renvoyé par le bus de messages et donc le dernier message ne s’affiche pas automatiquement.
Nous avons confirmé que le bus de messages fonctionne généralement comme prévu, car il renvoie correctement des données sur le canal topic/presence/123.
La contrepartie de ce qui précède est que pour les utilisateurs administrateurs qui font partie du groupe ayant été ajouté au message privé, le bus de messages renvoie correctement des données sur le canal topic/123 et le nouveau message est donc correctement affiché sur le sujet en temps réel.
Nous avons également confirmé que si un utilisateur régulier qui est membre du groupe est invité séparément à participer au sujet (de sorte que nous ayons maintenant cooking-class-101, system et regular-user participant), alors ils commencent à recevoir correctement des réponses du bus de messages sur le canal topic/123 et voient donc les nouveaux messages en temps réel.
Recherche
En fouillant dans le code de Discourse, je suis tombé sur ce qui suit, ce qui laisse penser que pour les sujets de messages privés, il se peut que les groupes ne soient pas notifiés des nouveaux messages publiés : discourse/app/models/post.rb at b7b81afe553a79f58f79f49a6c2ceff831aa4ec7 · discourse/discourse · GitHub
Je ne suis pas tout à fait sûr de ce que topic.allowed_users dans le lien ci-dessus est censé renvoyer sur un sujet de message privé avec un groupe ajouté, mais je soupçonne qu’il n’inclut pas la liste des utilisateurs qui existent en tant que membres du groupe.
J’ai étiqueté cela comme un bug, mais cela pourrait bien être un comportement intentionnel ?