Automatically add users to group based on part of email domain 토론을 이어서 진행합니다:
제안
현재 그룹 멤버십 설정인 “이 목록에 정확히 일치하는 이메일 도메인으로 가입한 사용자는 이 그룹에 자동으로 추가됩니다” – 관리자가 example.com과 일치시키려는 경우 – 는 email@example.com과 같은 2차 도메인만 일치시킵니다.
email@sub.example.com과 같은 서브도메인도 일치하도록 이 설정을 변경할 것을 제안합니다.
이유/혜택
-
특히 정부 관련 두 도메인의 서브도메인을 수동으로 입력하는 것은 비현실적입니다: 각 도메인은 수백 개의 서브도메인을 가지고 있으며, 이는 끊임없이 변하고 있고, 전체 목록은 공개되어 있지 않습니다.
-
@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을 입력하도록 하는 것입니다.
감사
이 요청을 검토해 주셔서 감사합니다.