Um eine Lösung für Restrict exposure of full name to certain groups vorzuschlagen, möchte ich ein (serverseitiges) Berechtigungsprädikat definieren, das die Frage beantwortet:
Basierend auf dem aktuellen Benutzerumfang/Kontext, ist es in Ordnung, die vollständigen Namen anderer Benutzer preiszugeben?
(Der Umfang könnte durch eine Client-Anfrage oder durch einen internen Verarbeitungsschritt, wie z. B. die Generierung von Digest-E-Mails, festgelegt werden.)
Was ist die richtige Konstruktion für ein solches Prädikat? Wo im Code sollte es leben? Ich denke, dass dies vielleicht in einen Guardian gehört – bin ich auf dem richtigen Weg? Irgendwelche Meinungen dazu?
Ich stelle mir vor, dass dieses neue Prädikat viele (aber nicht alle) Instanzen von SiteSettings.enable_names? im Code ersetzen würde. (Das Treffen der Serializer, die user.name liefern, schließt die meisten Datenlecks, aber nicht alle.) Ein schöner Vorteil davon ist, dass es eine Erweiterungsmöglichkeit einführen würde, mit der ein zukünftiges Plugin das Verhalten ändern könnte (derzeit nicht möglich, soweit ich weiß, oder ich würde es einfach tun!). Wenn ich das also zum Laufen bringe, wäre dies ein Pull-Request zum Discourse-Kern – und ich möchte einen PR einreichen, der eine Chance hat, akzeptiert zu werden.