Könnte ich bitte eine Überprüfung für diesen PR erhalten?
Wir versuchen, eine regionsspezifische Diskussion zu schaffen, bei der die Mitgliedschaft eines Benutzers ihn auf bestimmte Gruppen beschränkt, aber derzeit steht dies im Konflikt mit der Unterstützung anonymer Benutzer, da anonyme Benutzer keine Gruppenassoziationen haben.
Dieser PR fügt Gruppenassoziationen für anonyme Benutzer hinzu.
Vielen Dank, dass Sie dieses Thema angesprochen haben!
Ich habe Deanonymisierungsangriffe berücksichtigt, und Sie haben Recht – die Vererbung von Benutzergruppen ist kein Werkzeug für jedermann und ist besonders anfällig für Instanzen mit vielen Gruppenmitgliedschaften. Wie im PR detailliert beschrieben, war das ursprüngliche Konzept, anonymes Posten in regionalen Gruppen zu unterstützen, die auf unserer Instanz implizit eine geringe Kardinalität aufweisen werden.
Bearbeitung: Ich habe ein Gruppenattribut namens anonymous_user_inheritance hinzugefügt, das es Administratoren ermöglicht zu wählen, ob die Gruppe von anonymen Benutzern geerbt wird oder nicht. Ich habe auch eine Warnung neben der Admin-Einstellung zum Aktivieren der Funktion hinzugefügt, und ich bin offen für weitere Vorschläge.
Es gibt eigentlich keine Kategorie für Code-Reviews, daher ist dies wahrscheinlich die beste.
PRs sind oft willkommen, obwohl es gut ist, zu bestätigen, dass dies eine Richtung/Funktion ist, die Discourse verfolgen möchte, bevor man zu tief eintaucht.
Alternativ könnten Sie diese Funktion in einem Plugin einführen, damit sie verfügbar ist, ohne in den Hauptcode aufgenommen zu werden.
Danke für den Tipp! Ein Plugin wäre für unsere Zwecke gut geeignet, außer dass diese Änderung eine Datenbankmigration erfordert. Wäre eine Migration in einem Plugin machbar?
Ja, aber meiner Meinung nach ist es schlechte Praxis, Kerntabellen in einem Plugin zu ändern.
Wenn Sie dies in ein Plugin verschieben, ist es besser, group_custom_fields oder Ihre eigene, dafür vorgesehene Tabelle zu verwenden.
In diesem speziellen Fall könnten Sie auch (stattdessen) eine Website-Einstellung wie „erlaubte geerbte Gruppen“ hinzufügen und den Administrator alle Gruppen auswählen lassen, die in diese eine Einstellung geerbt werden können. Das würde die Dinge viel einfacher halten und die gesamte Funktionalität des Plugins an einem Ort zusammenfassen.
Danke für das Feedback, Richard! Können Sie mir helfen, Ihren zweiten Vorschlag zu verstehen?
den Administrator alle Gruppen auswählen lassen, die in diese einzelne Einstellung geerbt werden können
Um mein Verständnis zu überprüfen: Schlagen Sie vor, dass die allgemeine Site-Einstellung die Gruppenvererbung zulässt und dann auf der Einstellungsseite jeder einzelnen Gruppe ein Kontrollkästchen vorhanden ist, ob diese Gruppe vererbbar ist oder nicht, sodass es dem ähnelt, was ich derzeit habe, außer dass die redundante Einstellung entfernt wird.
den Administrator alle Gruppen auswählen lassen, die in diese einzelne Einstellung geerbt werden können
Haben Sie das oben vorgeschlagen oder hatten Sie etwas anderes im Sinn? Meine ursprüngliche Idee war, eine Art Auswahlwerkzeug zu entwickeln, bei dem es ein Kontrollkästchenmenü oder so etwas gibt, aber das wurde sehr schnell implementierungstechnisch komplex.
Danke auch für den Tipp zu Plugins! Ich werde die Plugin-Option bei zukünftigen Beiträgen berücksichtigen.
Nein, ich schlage vor, dass Sie dies nicht zu einer Einstellung auf der Gruppenseite machen, sondern zu einer einzigen websiteweiten Einstellung, die alle vererbbaren Gruppen enthält.
Eine ähnliche Einstellung ist Admin - Einstellungen - Benutzer - anonymes Posten erlaubte Gruppen. Es ist kein Kontrollkästchen auf der Einstellungsseite jeder Gruppe „anonymes Posten für diese Gruppe erlauben“, sondern eine Einstellung mit allen Gruppen, die anonymes Posten erlauben.
oder Admin - Einstellungen - Posten - hier erwähnte Gruppen erlaubt anstelle eines Kontrollkästchens auf der Einstellungsseite jeder Gruppe „hier Erwähnungen für diese Gruppe erlauben“.
Es ist einfacher zu implementieren, es ist weniger Datenbank-Unordnung und es bietet eine bessere Übersicht für den Forenadministrator.