Automatische Gruppenmitgliedschaft basierend auf Subdomain zulassen

Fortsetzung der Diskussion von Automatisch Benutzer basierend auf Teilen der E-Mail-Domain zur Gruppe hinzufügen:

Vorschlag

Derzeit passt die Gruppeneinstellung „Benutzer, die sich mit einer E-Mail-Domain registrieren, die genau mit einer in dieser Liste übereinstimmt, werden automatisch zu dieser Gruppe hinzugefügt“ – bei der der Administrator example.com abgleichen möchte – nur Second-Level-Domains wie email@example.com.

Ich schlage vor, dies so zu ändern, dass auch Subdomains abgeglichen werden, z. B. email@sub.example.com.

Grund/Vorteile

  1. Es wäre für mich nicht praktikabel, die Subdomains für zwei staatliche Domains manuell einzugeben: Jede hat Hunderte von Subdomains, die sich ständig ändern, und die vollständige Liste ist nicht öffentlich verfügbar.

  2. Dies würde Konsistenz mit email_domains_whitelist gewährleisten, wie von @sam in Automatic registration domain wild card - #3 by sam bemerkt:

Ja, es gibt eine interne Inkonsistenz, unsere automatische Gruppenmitgliedschaft basiert auf einem strikten Domain-Abgleich gemäß:

discourse/app/jobs/regular/automatic_group_membership.rb at 40546af21746d469e39dfdcc9ca48987fef6cf3c · discourse/discourse · GitHub

Unser Abgleich für die email_domains_whitelist verwendet diesen Abgleich

discourse/lib/validators/email_validator.rb at 40546af21746d469e39dfdcc9ca48987fef6cf3c · discourse/discourse · GitHub

Ich denke, es ist sinnvoll, dies kohärent und konsistent zu gestalten.

@techAPJ können Sie den Gruppen-Regex anpassen … sorgfältig und sicherstellen, dass er getestet wird, damit er auch Subdomains zulässt.

Lösungsvorschläge

Dies ist durch eine geringfügige Änderung von pattern = \"@(#{domains.gsub('.', '\\.')})$\" unter discourse/discourse/blob/20de49c8722f8e50e93732702a8d06570376edcd/app/models/group.rb#L1017 möglich.

  1. Die Änderung zu pattern = \"@.*(#{domains.gsub('.', '\\.')})$\" funktionierte bei mir, als ich sie auf meinem Forum getestet habe.

  2. Ich stelle mir vor, dass pattern = \"@(.+\\\\.)?(#{domains.gsub('.', '\\.')})$\" (basierend auf email_domains_whitelist) auch funktionieren würde, aber das habe ich erst später bemerkt und noch nicht getestet. Ich verstehe nicht, warum es nicht (.+\\.)? ist, aber vielleicht ist das \\\\ eine Ruby-Sache.

Eine Alternative (falls Sie Bedenken hatten wegen Benutzern, die derzeit beabsichtigen, Subdomains von der automatischen Mitgliedschaft auszuschließen) wäre, Wildcards zuzulassen, z. B. *.domain.com für die automatische Gruppenmitgliedschaft einzugeben.

Danke

Vielen Dank für die Berücksichtigung dieser Anfrage.

6 „Gefällt mir“

Nur zur einfacheren Referenz und vielleicht um diese Funktionsanfrage beliebter erscheinen zu lassen, als ihre bloßen vier Likes, hier sind zwei weitere Male, in denen diese Funktion angefordert wurde. Die erste war vor vier Jahren und die zweite erst letzten Monat.

2 „Gefällt mir“