Versteckte Benutzerfelder

:information_source: Zusammenfassung Benutzerfelder erstellen, die nur für bestimmte Gruppen sichtbar sind
:hammer_and_wrench: Repository discourse-hidden-user-fields
:question: Installationsanleitung So installieren Sie ein Theme oder eine Theme-Komponente
:open_book: Neu bei Discourse Themes? Anfängerleitfaden zur Verwendung von Discourse Themes

Install this theme component

Detaillierte Beschreibung

:warning: Seien Sie vorsichtig mit sensiblen Daten in diesen Feldern. Felder werden nicht im Quellcode gefunden, könnten aber sichtbar sein, wenn etwas schiefgeht. :warning:

Ich habe zwei Benutzer, derek_test (links) und anon9 (rechts). Die Felder ID & Firma sind beide in ihren Profilen ausgefüllt, aber nur eines ist für den anderen sichtbar. derek_test kann ID sehen und anon9 kann Company sehen.

Benutzerprofile

Benutzerkarten

Suche

In diesem Fall kann anon9 (rechts) die Firma sehen und nach Acme suchen.


Einstellungen

CleanShot 2025-11-13 at 16.17.43

  • Feldname: Geben Sie den Namen des benutzerdefinierten Benutzerfelds ein (eins pro Objekt)
  • Zulässige Gruppen: Wählen Sie zulässige Gruppen aus der Liste aus

Voraussetzungen

Dies nutzt Benutzerdefinierte Benutzerfelder. Diese Einstellungen legen fest, wo die Felder sichtbar sein werden:

:white_check_mark: Überprüfen Sie diese Einstellungen, sobald die Felder ausgefüllt sind, oder erstellen Sie Berechtigungen im Voraus, damit diese Felder niemals offengelegt werden.

6 „Gefällt mir“

Was sehen Benutzer, die nicht angemeldet sind? Wenn das Feld also nur für Administratoren sichtbar ist, dann würde ich erwarten, dass Benutzer es auch nach dem Abmelden nicht sehen können, richtig?


Gibt es einen Grund, warum Sie das Textfeld für die Gruppeneinstellung anstelle einer Gruppenliste gewählt haben? Es ist etwas bequemer für die Eingabe von Gruppen, da Sie sie auswählen können, anstatt den Namen einzugeben. Es funktioniert jedoch mit der ID, sodass Sie den Code ein wenig ändern müssen. Aber es funktioniert immer noch, auch wenn Sie die Gruppe umbenennen.

1 „Gefällt mir“

Guter Hinweis, ich habe es gerade aktualisiert, um dies zu berücksichtigen. Ich kann bestätigen, dass abgemeldete Benutzer das Feld nicht sehen.

Ich werde ehrlich sein und sagen, dass ich dies mit Claude Code gemacht habe, aber es sagte, dass der Typ group_list in einem Objekteditor nicht verfügbar ist – nur als Top-Level-Einstellung.

Es müsste also so etwas sein, aber eine feste Anzahl von verfügbaren Feldern

CleanShot 2025-11-13 at 13.12.21

1 „Gefällt mir“

Das ist interessant. Basierend auf der Dokumentation hätte ich auch erwartet, dass es so etwas unterstützt.

2 „Gefällt mir“

Vielen Dank für den Hinweis! Ich konnte die Gruppeneinstellungen anhand dieser Dokumentation ändern!

Ich werde die obigen Details aktualisieren, um die Änderung widerzuspiegeln.

2 „Gefällt mir“

Hm.. Obwohl die Einstellungen im Objekt-Editor list_type:group akzeptierten, konnte ich eine Fehlermeldung nicht überwinden:

CleanShot 2025-11-13 at 13.52.29

Ich habe ein paar verschiedene Transformationen ausprobiert, konnte aber nicht weiterkommen. Das Fazit lautet: „Der groups-Typ in Objektschemata ist dokumentiert, aber die Benutzeroberfläche ist im Frontend nicht implementiert.“

2 „Gefällt mir“

Ich habe diesen Fehler auch gesehen, aber nachdem ich die Reset-Schaltfläche verwendet habe, um die gesamten Objekteinstellungen zurückzusetzen, ist der Fehler nicht wieder aufgetreten :woman_shrugging:

Also alles gut jetzt
Screenshot_20251113_195748_Firefox

Vielleicht mochte es die Änderung des Einstellungstyps bei einer vorhandenen Konfiguration nicht.

2 „Gefällt mir“

Das kann ich mir sehr nützlich vorstellen!

1 „Gefällt mir“

Hallo, @putty!

Ich habe einige Probleme damit:

Ich muss Benutzerfelder für jeden Benutzer ausblenden, der nicht in der Benutzergruppe ist – scheint das der richtige Fall zu sein?

  1. Wenn der Benutzer selbst nicht in dieser Gruppe ist, kann er diese Felder auch nicht in seinem eigenen Konto sehen – ist das in Ordnung?
  2. Andere Benutzer sehen die Felder weiterhin nicht, wenn sie weder Administrator noch Moderator sind!
  3. Übrigens sollten Moderator und Administrator auch in dieser Gruppe sein, um die Felder zu sehen, die von diesem Thema ausgeblendet werden.

Könntest du mir dabei helfen?

Hallo Alexey,

Können Sie das näher erläutern? Ich sehe das Problem nicht. Es hat derzeit 1 & 2. Besteht Ihre Anforderung auch darin, Felder vor Mods/Administratoren auszublenden? Nebenbei bemerkt müssten Administratoren das Feld zunächst erstellen.

Hallo, danke!

Habe es gerade erneut auf meinem lokalen, sauberen neuesten GitHub-Repository und auf der gehosteten Lösung mit dem neuesten Build getestet – nur die Kategorie „Admin“ ist betroffen und kann das Feld „Versteckt“ sehen, wenn er/sie Mitglied einer Gruppe ist, der das Anzeigen dieses Feldes erlaubt ist. Selbst der Moderatorzugriff (wie ich vorher dachte, funktioniert nicht)

Der Fall:

  1. Zwei Benutzer, Admin und Alex_1
  2. Benutzergruppe L2_verified
  3. Benutzerfeld – Vollständiger Name (Für alle Benutzer, alle Ein, nur durchsuchbar Aus)
  4. Beide Benutzer haben Namen: Alex Admin und Alex
  5. Theme-Einstellungen:
    Komponente in diesen Themes einschließen (Foundation, Horizon)
    Feldname: Vollständiger Name
    Zulässige Gruppen: L2_verified

Ergebnisse:

  1. Beide sind keine Mitglieder von L2_verified – niemand sieht das Feld „Vollständiger Name“ (nicht einmal den eigenen vollständigen Namen)
  2. Admin ist Mitglied von L2_verified – kann den vollständigen Namen von Alex_1 sehen (und den eigenen vollständigen Namen)
  3. Alex_1 ist Mitglied von L2_verified – kann den eigenen vollständigen Namen und den des Admins nicht sehen
  4. Als ich Alex_1 die Berechtigung des Admins erteilte, konnte es sowohl den eigenen als auch den vollständigen Namen des Admins sehen
1 „Gefällt mir“

Also… Es sieht so aus, als wären wir gut? haha :sweat_smile:

1 „Gefällt mir“

Mein Antigravity mit Gemini 3 Pro High hat die Grundursache gefunden:

Grundursache identifiziert: Die Gruppe

L2_verified

existiert und

Alex_1

ist Mitglied, ABER die Sichtbarkeitsstufe der Gruppe ist auf 4 (Nur Mitarbeiter/Besitzer) eingestellt.

Aufgrund dieser restriktiven Einstellung teilt Discourse dem Browser nicht mit, dass

Alex_1

Mitglied dieser Gruppe ist (es sei denn, er ist auch Mitarbeiter/Administrator). Daher prüft die Theme Component die Liste, findet

L2_verified

nicht und hält das Feld verborgen.

Behebung:

  1. Gehen Sie zu GruppenL2_verifiedVerwaltenInteraktion.

  2. Ändern Sie Wer kann diese Gruppe sehen? auf „Mitglieder“ oder „Jeder“.

  3. Speichern.

  4. Aktualisieren Sie als

    Alex_1
    

    (Nicht-Administrator). Es sollte jetzt funktionieren!

Aber es ist vorerst keine Umgehungslösung – die meisten unserer Gruppen sind vor allen verborgen :frowning:

Hallo @dereklputnam,

Vielen Dank für diese großartige Komponente! Sie ist eine fantastische Grundlage für die Verwaltung der Benutzer-Privatsphäre auf Discourse.

Ich habe basierend auf Ihrer Arbeit eine spezielle bidirektionale (reziproke) Sichtbarkeits-Fork entwickelt. In unserer professionellen Community benötigten wir ein „Gegenseitiges Vertrauen“-Modell, bei dem verifizierte Mitglieder die Klarnamen/Geschäftsdaten der jeweils anderen sehen können, aber für die allgemeine Öffentlichkeit oder nicht verifizierte Benutzer völlig anonym bleiben.

Hauptmerkmale dieser Fork:

  • Reziproke Logik: Ein Feld wird nur angezeigt, wenn sowohl der Betrachter als auch der Profilinhaber zur autorisierten Gruppe gehören.

  • Mitarbeiter-Aufsicht: Administratoren und Moderatoren behalten aus Sicherheits- und Moderationsgründen die volle Sichtbarkeit.

  • Selbst-Sichtbarkeit: Benutzer können ihre eigenen ausgeblendeten Felder immer sehen, auch wenn sie noch nicht Teil der autorisierten Gruppe sind, damit sie ihr eigenes Profil verwalten können.

  • Peer-to-Peer-Datenschutz: Es wird sichergestellt, dass selbst verifizierte Benutzer ihre Identität niemandem preisgeben, der nicht das gleiche Maß an Verifizierung durchlaufen hat.

Roadmap: In zukünftigen Updates plane ich, granulare Gruppeneinstellungen hinzuzufügen, um genau zu definieren, welche Gruppen sehen und gesehen werden können (z. B. Gruppe A darf Gruppe B sehen, aber nicht umgekehrt).

Ich poliere derzeit die Dokumentation und plane, dies als eigenständige „Erweiterte Datenschutz“-Variante in einem separaten Thema zu veröffentlichen, sobald ich vollen Zugriff auf die Kategorie „Theme Components“ habe.

In der Zwischenzeit, falls jemand diese bidirektionale Logik benötigt, kann er sie hier einsehen: GitHub: https://github.com/AirVetra/discourse-hidden-user-fields-bidirectional

Nochmals vielen Dank für die Inspiration!

1 „Gefällt mir“