Ne pas afficher les noms d'utilisateur qui détiennent un badge spécifique

Existe-t-il un moyen de masquer la liste des utilisateurs qui ont un badge spécifique ?

J’ai consulté Don't list members having the same badges et Hide badge user list?, mais ils ne correspondent pas tout à fait à notre cas d’utilisation (ou plus probablement, à notre cas particulier).

Les badges sont très populaires dans notre communauté, ils constituent une ressource fantastique pour l’engagement.

Nous avons des catégories premium sur notre Discourse qui ne sont accessibles qu’aux abonnés / membres payants et nous aimerions récompenser ces membres payants avec un badge d’or pour leur profil, appelons-le « Membre Extra Spécial » dans cet exemple.

Le nombre de membres payants que nous avons est un nombre commercialement sensible.

Ce nombre serait divulgué à toute personne détenant le badge « Membre Extra Spécial », même s’il est caché sur la page du badge, ils pourraient simplement cliquer sur leur propre badge, puis voir tous les autres membres qui détiennent également ce badge.

Existe-t-il un moyen d’empêcher les gens de voir qui d’autre détient un badge spécifique ? :thinking:

Pourriez-vous ne pas utiliser de fioritures à la place ?

Hmmmm :thinking:

Tout à fait possible…

Cet avertissement comporte-t-il un risque de fuite de numéros de membres sensibles ?

Puisqu’il s’agit d’un groupe principal, le nom ‘hidden_group_test_2’ sera utilisé dans les classes CSS qui peuvent être vues par n’importe qui.

Excusez les couleurs vives, c’est juste pour tester :

1 « J'aime »

Je n’ai aucune objection à ce que le nom du groupe caché soit divulgué, tant que la liste/le nombre de membres ne le sont pas.

J’ai effectué quelques tests, mais je ne suis pas sûr que ce soit idéal pour notre cas d’utilisation non plus.

Le « flair » (de notre groupe caché) est appliqué à l’utilisateur, mais au moment où il rejoint l’un de nos autres groupes, son « flair » est remplacé par celui du groupe qu’il vient de rejoindre.

Sur son profil, il ne peut alors choisir qu’un « flair » d’un groupe public, il perd complètement l’accès à son « flair » de membre spécial et ne peut pas le réappliquer :confused:

Avez-vous ceci configuré sur les autres groupes :

Screenshot 2023-02-07 at 2.09.34 PM

C’est sous ‘Effets’ sur Gérer/Adhésion pour chacun des groupes.

Si c’est configuré sur ce groupe et aucun autre, cela ne devrait pas outrepasser.

Le groupe principal déterminera le flair et le titre par défaut de l’utilisateur.

1 « J'aime »

Oui, c’est configuré sur tous nos groupes, donc ils reçoivent le flair pour le groupe qu’ils viennent de rejoindre.

D’autres idées allaient dans le sens de forcer un titre sur tous les utilisateurs, par exemple « Invité », mais cela pourrait simplement être modifié par eux pour n’importe lequel des titres de badge qu’ils détiennent. Je ne pense pas pouvoir empêcher les gens de changer leur titre.

Je cherche un moyen pour que les invités et les membres puissent s’identifier mutuellement (c’est-à-dire un badge) mais sans révéler le nombre de membres Extra Spéciaux que nous avons.

Y aurait-il d’autres solutions ou solutions de contournement innovantes ?

Pourrais-je faire quelque chose d’intelligent avec les « Champs utilisateur » ?

Peut-être créer un champ utilisateur appelé « Statut », le rendre visible sur leur profil, mais qu’il ne soit pas modifiable par eux. Pourrais-je ensuite mettre à jour ce champ utilisateur « statut » automatiquement par un appel API ? (nous déclenchons un appel API pour les ajouter à un groupe)

J’ai peut-être trouvé quelque chose ici :

J’ai créé un champ utilisateur appelé « Membre », et je ne les laisse pas le modifier :

Si j’édite un utilisateur pour tester, je peux voir « Membre : Oui » sur son profil :

C’est probablement le point décisif cependant :

Comment pourrais-je faire cela ? :thinking:

J’ai déjà un appel API existant qui est effectué lorsqu’une personne devient membre, j’envoie un appel API à Discourse pour l’ajouter à un groupe. Pourrais-je également envoyer un deuxième appel API pour mettre à jour ce champ utilisateur ?

Certainement :slight_smile:

Chaque fois que vous effectuez une action dans Discourse, vous pouvez consulter l’onglet réseau de vos outils de développement de navigateur pour voir la requête qui a été effectuée.

Par exemple, ici, je sauvegarde le profil d’un utilisateur :

Vous voyez l’URL de la requête, mentionnant le nom d’utilisateur, et le type de requête (PUT).
Dans l’onglet Payload, vous voyez les données pertinentes :

Les champs personnalisés sont listés comme user_fields[X] où X est le numéro du champ personnalisé.


Edit : J’ai vu que vous aviez trouvé la solution sur Dev, donc, juste pour faire le lien… :slight_smile:

1 « J'aime »