Automatically add users to group based on part of email domain からの議論の続き:
提案
現在、グループメンバーシップ設定の「このリストのいずれかのドメインと完全に一致するメールアドレスで登録したユーザーは、このグループに自動的に追加されます」は、管理者が example.com に一致させたい場合、email@example.com のようなセカンドレベルドメインにしか一致しません。
これを、email@sub.example.com のようなサブドメインにも一致するように変更することを提案します。
理由/メリット
-
特に2つの政府関連ドメインでは、サブドメインを手動で入力することは現実的ではありません。それぞれ数百のサブドメインがあり、それらは常に変更されており、完全なリストは公開されていません。
-
@sam が Automatic registration domain wild card - #3 by sam で指摘したように、
email_domains_whitelistとの一貫性を提供します。はい、内部的に一貫性がありません。自動グループメンバーシップは、次に基づいて厳密なドメイン一致に基づいています。
email_domains_whitelistのための私たちのマッチャーは、この一致を使用しますこれを首尾一貫させ、整合性を保つのが理にかなっていると思います。
@techAPJ サブドメインも許可されるように、グループ正規表現を…慎重に調整し、テストしてください。
提案される解決策
これは、discourse/discourse/blob/20de49c8722f8e50e93732702a8d06570376edcd/app/models/group.rb#L1017 の pattern = \"@(#{domains.gsub('.', '\\.')})$\" をわずかに変更することで可能です。
-
これを
pattern = \"@.*(#{domains.gsub('.', '\\.')})$\"に変更すると、私のフォーラムでテストしたときに機能しました。 -
pattern = \"@(.+\\\\.)?(#{domains.gsub('.', '\\.')})$\"(email_domains_whitelistに基づく) も機能すると思いますが、後で気づいただけでテストしていません。なぜ(.+\\.)?ではないのか理解できませんが、おそらく\\\\は Ruby の機能です。
代替案(現在サブドメインを自動メンバーシップから除外することを意図しているユーザーを懸念している場合)は、ワイルドカードを許可することです。たとえば、自動グループメンバーシップのために *.domain.com を入力することです。
感謝
このリクエストをご検討いただきありがとうございます。