저희 사용 사례의 경우, 초대 이메일을 완전히 비활성화할 수 있는 기능이 훨씬 낫겠습니다. 저희 사이트 대부분(온라인 코스를 위한 임시 커뮤니티)은 가입 기간이 제한되어 있으며(수수료 부과) 가입이 가능한 시간이 정해져 있습니다. 따라서 사이트에 초대장을 받은 사람이 실제로 접속했을 때 더 이상 가입할 수 없다는 사실을 알게 되면 좌절감을 느낄 것이라고 생각합니다. 저희는 사이트 초대장을 받는 상황이 발생하기를 원하지 않습니다.
이 기능을 진행하신다면, 다음과 같은 경고 메시지도 구현해 주셨으면 합니다: “당신의 사이트 사용자가 아닌 XX명에게 이메일을 보내려 합니다: bob@example.com, alice@example.com, …” 이렇게 하면 해당 사용자를 찾아서 일괄 추가 목록에서 제거할 수 있을 것입니다.
그렇지 않을 것 같은데, 아마도 질문을 제대로 이해하지 못한 것 같습니다. 우리가 Discourse, SSO 기능을 어떻게 사용하며 왜 처음에 이 버그에 부딪혔는지 설명드리겠습니다.
우리는 워크숍(코스)의 각 세션마다 임시 Discourse를 사용하는 e-learning 플랫폼을 운영하고 있습니다.
우리는 SSO를 커스텀 인증 시스템과 함께 두 가지 이유로 사용합니다:
사용자가 등록한 모든 코스에 액세스하기 위해 자격 증명 한 세트를 생성하기만 하면 되도록 하기 위함입니다.
데이터베이스의 임의의 데이터에 기반하여 각 Discourse에 누가 액세스할 수 있는지 정책을 강제 적용하기 위함입니다. 예를 들어, 우리의 Discourse SSO 엔드포인트에서 사용자가 유효한 등록을 가지고 있는지 그리고 해당 날짜가 우리의 시작 및 종료 날짜 범위 내에 있는지 확인합니다.
위에서 언급한 버그는 한 워크숍에 다른 워크숍에 belonged했던 사람들만을 위한 그룹(예: 동문 그룹)을 만들려고 할 때 발생했습니다. 그래서 다른 워크숍의 전체 수강생 명단을 일괄 추가 모달에 추가했는데, 현재 워크숍에 등록하지 않은 명단 내 모든 사람에게 실수로 초대를 보내게 되었습니다.
따라서 우리는 Discourse의 초대 기능(링크 또는 이메일 방식)을 실제로는 거의 사용하지 않습니다. 만약 초대 기능이 필요하더라도, 우리가 보낸 모든 초대 위에 추가하고 싶은 비즈니스 로직이 있기 때문에 아마도 직접 구축해야 할 것입니다. 예를 들어, 워크숍 등록 기간이 종료되었다면 링크에서 오류 메시지를 표시하고 싶을 수 있습니다. 또는 링크에 할인 정보를 포함하고 싶을 수도 있습니다.
결국, 이 기능을 사용하지 않아도 작동하는 것이 중요하지만, 해당 Discourse에 계정이 없는 사람들에게 우발적으로 이메일을 보내는 걱정을 하지 않아도 되었으면 합니다.