На нашем сайте есть форма обратной связи, которая в основном используется для вопросов поддержки. Я хочу, чтобы вопросы, отправленные через неё, становились новыми темами на нашем форуме, работающем на базе Discourse.
Я пытаюсь реализовать следующую последовательность действий:
Создать нового пользователя через API на основе имени и адреса электронной почты, указанных в форме.
Создать новую тему от имени этого пользователя.
Отправить этому пользователю электронное письмо со ссылкой на эту тему, а также запросом на создание пароля.
Теперь я нашёл четыре шаблона писем в Discourse, которые могли бы быть использованы на шаге 3: «Аккаунт создан», «Вход по ссылке», «Забыли пароль» и «Установить пароль». В документации по API я нашёл только вызов для отправки сообщения «Забыли пароль», но это, кажется, не лучший вариант для моего случая.
Мои вопросы:
a) При каких обстоятельствах отправляются остальные три сообщения («Аккаунт создан», «Вход по ссылке» и «Установить пароль»)?
b) Как можно отправить их через API?
«account_created» используется при вызове API-эндпоинта «invite admin» и при создании администратора с помощью задачи admin:invite.
«login via link» (внутренне называется email_login) отправляется, когда кто-то использует ссылку «Вход по электронной почте».
«set password» аналогично «Забыли пароль»: это происходит, когда у пользователя в базе данных ещё нет пароля.
Я считаю, что лучший подход — создавать новых пользователей в статусе «staged», а затем отправлять им приглашение на тему. Это приглашение автоматически авторизует их в их временном аккаунте и перенаправит к теме. Им не будет предложено создать пароль, но они смогут сделать это вручную или просто использовать вариант входа по электронной почте.