Как структурировать Discourse для онлайн-курса?

Привет, Хантер,

Сейчас мы находимся в бета-версии, но интеграция с Discourse проходит успешно. Мы используем интеграцию SSO для принудительного входа на нашем сайте. Это работает нормально, хотя я заметил следующее:

  1. Discourse не принимает имена пользователей со знаком «@» в них — он обрезает имя пользователя до части перед «@». Это может вызвать проблемы, если позже вы будете вызывать API Discourse, используя это имя пользователя в качестве аргумента. Discourse не распознает имя пользователя вроде someone@example.com, потому что в Discourse имя этого пользователя хранится как «someone». Простое решение — запретить использование знака «@» в именах пользователей на вашем сайте!

  2. Когда кто-то регистрируется на вашем сайте, вам нужно явно вызвать API Discourse для синхронизации пользователя SSO. Возможно, вы захотите выполнить некоторые действия с этим пользователем (например, добавить его в группу Discourse) до того, как он впервые посетит сайт Discourse (что автоматически синхронизирует SSO). У меня сайт на Django, поэтому я использую библиотеку pydiscourse, в которой есть метод sync_sso, делающий это довольно простым (pydiscourse · PyPI).

Да, мы будем отключать некоторые из наших курсов. В этом случае сервер будет вызывать API Discourse и удалять пользователя из общей группы для этого курса, а также из группы, посвященной его когорте в рамках этого курса.

Я создал таблицы на своем сайте на Django, которые отслеживают эти группы «курсов» и различные группы «когорт» внутри каждого курса. Поэтому я использую эту информацию при добавлении/удалении студентов и т.д.: