Продолжение обсуждения из темы Автоматическое добавление пользователей в группу на основе части домена электронной почты:
Предложение
В настоящее время настройка членства в группе «Пользователи, зарегистрировавшиеся с доменом электронной почты, который точно совпадает с одним из доменов в этом списке, будут автоматически добавлены в эту группу» — где администратор хочет сопоставить example.com — работает только для доменов второго уровня, например email@example.com.
Я предлагаю изменить это так, чтобы также поддерживались поддомены, например email@sub.example.com.
Обоснование/преимущества
-
Для меня было бы нецелесообразно вручную вводить поддомены для двух правительственных доменов в частности: у каждого из них сотни поддоменов, которые постоянно меняются, а полный список не является общедоступным.
-
Это обеспечит согласованность с
email_domains_whitelist, как отметил @sam в Automatic registration domain wild card - #3 by samДа, внутренне существует несоответствие: наше автоматическое членство в группе основано на строгом совпадении домена согласно:
Наше сопоставление для
email_domains_whitelistиспользует следующее:Я считаю, что логично сделать это согласованным и последовательным.
@techAPJ, не могли бы вы аккуратно настроить регулярное выражение для групп и убедиться, что оно протестировано, чтобы оно также допускало поддомены.
Предлагаемые решения
Это возможно с помощью незначительного изменения в pattern = "@(#{domains.gsub('.', '\.')})$" по адресу discourse/discourse/blob/20de49c8722f8e50e93732702a8d06570376edcd/app/models/group.rb#L1017
-
Изменение на
pattern = "@.*(#{domains.gsub('.', '\.')})$"сработало для меня, когда я тестировал это на своём форуме. -
Я предполагаю, что
pattern = "@(.+\\.)?(#{domains.gsub('.', '\.')})$"(основанное наemail_domains_whitelist) также должно работать, но я заметил это позже и не тестировал. Я не понимаю, почему там не(.+\.)?, но, возможно,\\— это особенность Ruby.
Альтернативный вариант (если вы опасаетесь пользователей, которые сейчас намеренно исключают поддомены из автоматического членства) — разрешить подстановочные знаки, например, вводить *.domain.com для автоматического членства в группе.
Спасибо
Спасибо за рассмотрение этой просьбы.