Benutzernamen, die ein bestimmtes Abzeichen tragen, nicht anzeigen

Gibt es eine Möglichkeit, die Liste der Benutzer auszublenden, die einen bestimmten Badge haben?

Ich habe mir Don't list members having the same badges und Hide badge user list? angesehen, aber sie passen nicht ganz zu unserem Anwendungsfall (oder wahrscheinlicher, unserem Sonderfall).

Badges sind in unserer Community sehr beliebt, sie sind eine fantastische Ressource für Engagement.

Wir haben einige Premium-Kategorien auf unserem Discourse, die nur Abonnenten / zahlenden Mitgliedern zur Verfügung stehen, und wir möchten diese zahlenden Mitglieder mit einem goldenen Badge für ihr Profil belohnen, nennen wir ihn in diesem Beispiel „Extra Special Member“.

Die Anzahl der zahlenden Mitglieder ist eine geschäftskritische Zahl.

Diese Zahl würde an jeden weitergegeben, der den „Extra Special Member“-Badge besitzt, auch wenn er auf der Badge-Seite verborgen ist, könnten sie einfach auf ihren eigenen Badge klicken und dann alle anderen Mitglieder sehen, die diesen Badge ebenfalls besitzen.

Gibt es eine Möglichkeit, zu verhindern, dass Leute sehen, wer noch nur einen bestimmten Badge besitzt? :thinking:

Könnten Sie nicht stattdessen Flair verwenden?

Hmmmm :thinking:

Ziemlich möglich…

Birgt diese Warnung das Risiko, sensible Mitgliedsnummern preiszugeben?

Da dies eine primäre Gruppe ist, wird der Name ‘hidden_group_test_2’ in CSS-Klassen verwendet, die von jedem eingesehen werden können.

Entschuldigen Sie die grellen Farben, es ist nur zum Testen:

1 „Gefällt mir“

Ich habe keine Einwände dagegen, wenn der versteckte Gruppenname durchgesickert ist, solange die Mitgliederliste / -anzahl dies nicht ist.

Ich habe ein paar Tests durchgeführt, bin mir aber nicht sicher, ob dies auch für unseren Anwendungsfall ideal ist.

Das Flair (aus unserer versteckten Gruppe) wird dem Benutzer zugewiesen, aber in dem Moment, in dem er einer unserer anderen Gruppen beitritt, wird sein Flair durch das der Gruppe ersetzt, der er gerade beigetreten ist.

In seinem Profil kann er dann nur noch ein Flair einer öffentlichen Gruppe auswählen, er verliert vollständig den Zugriff auf sein spezielles Mitglieds-Flair und kann es nicht wieder anwenden :confused:

Haben Sie diese Einstellung für die anderen Gruppen:

Screenshot 2023-02-07 at 2.09.34 PM

Sie befindet sich unter „Effekte“ bei Verwaltung/Mitgliedschaft für jede der Gruppen.

Wenn sie für diese Gruppe und keine anderen eingestellt ist, sollte sie nicht überschrieben werden.

Die primäre Gruppe bestimmt das Standard-Flair und den Titel für den Benutzer.

1 „Gefällt mir“

Ja, es ist für alle unsere Gruppen festgelegt, sodass sie das Flair für die Gruppe erhalten, der sie gerade beigetreten sind.

Andere Gedanken gingen in die Richtung, allen Benutzern einen Titel zu geben, zum Beispiel „Gast“, aber das könnte von ihnen zu jedem der Ausweis-Titel geändert werden, die sie besitzen. Ich glaube nicht, dass ich verhindern kann, dass Leute ihren Titel ändern.

Ich suche nach einer Möglichkeit, Gästen und Mitgliedern zu ermöglichen, sich als solche zu identifizieren (d. h. durch einen Ausweis), ohne die Anzahl der Extra-Spezial-Mitglieder preiszugeben, die wir haben.

Gäbe es andere innovative Lösungen oder Workarounds?

Könnte ich etwas Cleveres mit „Benutzerfeldern“ machen?

Vielleicht ein Benutzerfeld namens „Status“ erstellen, es auf ihrem Profil sichtbar machen, aber nicht von ihnen bearbeitbar. Könnte ich dann dieses „Status“-Benutzerfeld automatisch per API-Aufruf aktualisieren? (wir lösen einen API-Aufruf aus, um sie zu einer Gruppe hinzuzufügen)

Ich bin hier vielleicht etwas auf der Spur:

Ich habe ein Benutzerfeld namens „Mitglied“ erstellt und lasse es nicht bearbeiten:

Wenn ich einen Benutzer zum Testen bearbeite, sehe ich „Mitglied: Ja“ auf seinem Profil:

Das ist aber wahrscheinlich die Entscheidungsgrundlage:

Wie gehe ich das an? :thinking:

Ich habe bereits einen API-Aufruf, der gemacht wird, wenn jemand Mitglied wird. Ich löse einen API-Aufruf aus, um ihn zu einer Gruppe hinzuzufügen. Könnte ich auch einen zweiten API-Aufruf auslösen, um dieses Benutzerfeld zu aktualisieren?

Sicher :slight_smile:

Jedes Mal, wenn Sie eine Aktion in Discourse ausführen, können Sie den Netzwerk-Tab Ihrer Browser-Entwicklertools überprüfen, um die durchgeführte Abfrage zu sehen.

Zum Beispiel speichere ich hier das Profil eines Benutzers:

Sie sehen die Request-URL, die den Benutzernamen erwähnt, und die Art der Anfrage (PUT).
Auf dem Payload-Tab sehen Sie die relevanten Daten:

Die benutzerdefinierten Felder sind als user_fields[X] aufgeführt, wobei X die Nummer des benutzerdefinierten Feldes ist.


Bearbeiten: Ich habe gesehen, dass Sie es in Dev herausgefunden haben, also nur zur Verlinkung… :slight_smile:

1 „Gefällt mir“