자동 승인 이메일 도메인 일괄 추가

Formalized assignment and possible logging of pending applications 에서 이어서 진행하는 토론입니다

auto approve email domains의 값은 공백으로 구분된 문자열인가요? 아니면 쉼표로 구분되거나 줄바꿈으로 구분되는 건가요? 감사합니다, R

UI에서 :heavy_plus_sign: 버튼을 사용하여 하나씩 추가한 후(그리고 녹색 체크로 확인)

많은 도움 주셔서 감사합니다, @JammyDodger. 조금 더 자동화하는 방안을 고려하고 있었습니다. 현재 이메일 목록을 내보낸 뒤, hipo list의 대학 도메인과 일치하는 항목을 추출하고, 그 새로운 목록을 discourse의 auto approve email domains 키 아래로 가져오는 것이었습니다. 수치 처리를 위해 python과 pandas를 사용하려고 했습니다. I guess that route is not supported? 이 방식은 지원되지 않는 건가요? 아니면 우리가, 혹은 우리가 프로그래매틱 접근을 할 수 있을까요? (P.S. 스크린샷에 언급된 대로, gmail.com은 자동으로 승인하고 싶지 않은 마지막 도메인입니다.)

아, 그리고 부서 정보가 포함될 수 있도록 *.tu‑berlin.de와 같은 와일드카드를 사용할 수 있을까요? 예를 들어 maths.tu‑berlin.de 같은 경우를 말입니다.

제가 너무 단순하게 접근하고 있다는 느낌이 들었습니다. :slight_smile: 더 많은 지식을 가진 분들이 볼 수 있도록 Support 토픽으로 분리하는 것이 좋을 것 같습니다. :+1:

이 부분은 공감합니다. :slight_smile: 걱정 마세요, 그것은 이 Meta 사이트의 설정이 아니라 제 테스트 사이트의 목업(Mockup) 스크린샷이었습니다. :slight_smile:

불행히도 이것이 불가능하다고 생각합니다. 이 내용을 언급한 기능 요청을 제출했습니다:

제 주요 제안은 아마도 원하시는 것이 아닐 것입니다 (tu-berlin.de를 추가하면 maths.tu-berlin.de를 비롯한 모든 부서 도메인이 포함되게 됩니다).

제가 찾던 동작이 정확히 그거였어요.

Rails 콘솔에 접근 권한이 있다면, allowed email domains를 임의의 개수의 호스트명을 포함하는 파이프(|) 구분 문자열로 설정할 수 있으므로, 이는 실행 가능한 방법처럼 보입니다.

다만, 왜 수치 처리가 필요한지 잘 모르겠습니다. 이는 표준 UNIX 도구로 수행할 수 있습니다.

다음은 Hipo 목록에서 도메인 목록을 가져오는 방법입니다:

curl -L 'https://github.com/Hipo/university-domains-list/blob/master/world_universities_and_domains.json?raw=true' |
  jq '.[].domains' |
  jq -r add |
  sort -u

이를 domains.txt로 저장하고, 이메일 주소가 포함된 파일이 emails.txt라고 가정하면, 다음 명령어로 허용 목록(allowlist)에 추가할 도메인의 부분 집합을 얻을 수 있습니다:

grep -if domains.txt emails.txt |
  cut -d @ -f 2 |
  sort -u

즉, 도메인 목록에 tusculum.edu만 포함되어 있더라도, some.student@mail.tusculum.edu와 같은 이메일은 실제로 허용 목록에 추가하려는 호스트명인 mail.tusculum.edu를 생성하게 되며, 이는 어펙스 도메인(apex domain)과는 다릅니다.

그あとは 단순히 이 도메인을 포함하는 파이프 구분 문자열을 설정하는 일만 남습니다. 이 방법으로 괜찮으신가요?

감사합니다 @leonardo. Discourse 호스팅 제공업체에게 Ruby on Rails 콘솔에 접근할 수 있는지 확인해야 할 것 같습니다(아마도 불가능할 것 같은데요?). 하지만 내일 질문을 제출하겠습니다.

말씀하신 bash 셸 유틸리티에는 익숙합니다(1997년경 SCO UnixWare에서 시작해서 나중에 Linux로 이전했습니다). Python을 채택하는 이유 중 하나는 우리 포럼의 향후 관리자들이 Python에 대해 더 잘 알고 있을 가능성이 높기 때문입니다.

완벽합니다. Python도 마찬가지로 쉽게 만들어야 합니다.

그것이 불가능할 경우, 관리자 계정을 사용하여 PUT /admin/site_settings/allowed_email_domains 요청을 보내고 다음과 같은 폼 인코딩된 페이로드를 전달할 수 있습니다:

allowed_email_domains=zuyd.nl%7Czzgc.edu.cn%7Czzut.edu.cn

아니요, 접근할 수 없습니다. 하지만 레오나르도님이 제안하신 대로 API를 사용하거나, 대신 실행해 주길 원하는 명령어를 티켓으로 제출할 수 있습니다. 결과를 보내드릴 수도 있습니다 :wink:

@RGJ 정말 감사합니다. 다른 생각이 하나 더 있는데, 아마도 전혀 근거가 없는 생각일 수 있습니다. 하지만 hipo 목록과 같은 포괄적인 데이터베이스를 discourse 인스턴스에 업로드하고, discourse가 이러한 종류의 스크리닝과 처리를 수행할 수 있다면 사용자 입장에서는 이상적일 것입니다. :sloth: