The discussion revolves around hiding the list of users who hold a specific badge in a Discourse community. Richie wants to prevent users with a “gold badge” from seeing who else holds the same badge, as the number of holders is commercially sensitive.
Ritchie considered using flair instead, but it gets replaced when users join other groups, and they lose access to their special member flair. Stephen suggested setting a primary group to determine the default flair and title, but Richie mentioned that it’s set on all groups, causing the issue.
Ritchie explored alternative solutions, including forcing a title on all users, but it can be changed by them. Eventually, Ritchie created a user field called “Member” that’s visible on profiles but not editable by users.
Canapin confirmed that it’s possible to update the user field automatically through an API call. Ritchie plans to fire a second API call to update the user field when someone becomes a member.
Badges are hugely popular in our community, they’re a fantastic resource for engagement.
We have some premium categories on our Discourse which are only available to subscribers / paying-members and we would like to reward those paying members with a gold badge for their profile, lets call it “Extra Special Member” in this example.
The number of paying members we have is a commercially sensitive number.
That number would be leaked to anyone holding the Extra Special Member badge, even though it is hidden on the badge page, they could simply click on their own badge and then see all the other members that also hold that badge.
Is there a way to prevent people seeing who else holds just one specific badge?
I’ve performed a few tests but I’m not sure this is ideal for our use case either.
The flair (from our hidden group) gets applied to the user, but the moment they join any of our other groups their flair is replaced with that of the group they just joined.
On their profile, they are then only able to chose a flair of a public group, they completely lose access to their special member flair and can’t re-apply it
Other thoughts were along the lines of forcing a title on all users, of “Guest” for example, but that could just be changed by them to any of the badge-titles they hold. I don’t think I can prevent people from changing their Title.
I’m looking for a way for guests and members to identify each other as such (ie. a badge) but without leaking the number of Extra Special Members that we have.
Would there be any other innovative solutions or workarounds?
Could I do something clever with “User Fields”?
Maybe create a user field called “Status”, have it visible on their profile, but not editable by them. Could I then update this “status” user field automatically by an API call? (we fire an api call to add them to a Group)
I have an existing API calls that is made already when someone becomes a member, I fire an API call to Discourse to add them to a group. Could I also fire a second API call to update that User Field?