В этом руководстве объясняется, как объединить несколько учётных записей пользователей в одну учётную запись Discourse. Описаны процессы объединения нештатных пользователей через интерфейс Discourse и штатных пользователей через консоль.
Требуемый уровень доступа: Администратор
Объединение учётных записей пользователей в Discourse позволяет свести несколько аккаунтов в один. Этот процесс может быть полезен в следующих ситуациях:
- Когда пользователь создал несколько учётных записей, возможно, из-за того, что забыл о предыдущей регистрации.
- Если пользователь создал новую учётную запись с новым адресом электронной почты вместо обновления существующей.
- Когда пользователь хочет объединить несколько учётных записей, используемых для разных целей (например, личных, рабочих или тестовых), в один аккаунт.
Объединение нештатных пользователей
Администраторы могут объединять нештатных пользователей напрямую через интерфейс Discourse.
Это действие необратимо. Исходная учётная запись пользователя будет удалена после объединения.
Чтобы объединить двух нештатных пользователей:
- Перейдите на страницу администрирования пользователя исходного аккаунта (того, из которого нужно выполнить объединение).
- Прокрутите страницу в самый низ.
- Нажмите кнопку «Объединить» (Merge).
- В первом всплывающем окне введите имя пользователя целевого аккаунта (того, в который нужно выполнить объединение) и нажмите «Перенести и удалить» (Transfer & Delete).
- Появится диалоговое окно подтверждения. Введите показанный текст подтверждения (например,
transfer @source to @target) и нажмите «Перенести и удалить» (Transfer & Delete), чтобы запустить процесс объединения.
Объединение крупных учётных записей может быть ресурсоёмким и занять некоторое время в зависимости от объёма данных, связанных с исходным пользователем.
Что объединяется?
При объединении учётных записей пользователей Discourse объединяет данные из более чем 50 таблиц, включая:
- Сообщения и темы
- Полученные и отправленные лайки
- Личные сообщения
- Информацию профиля пользователя
- Предпочтения и настройки пользователя
- Действия и активность пользователя (например, закладки, просмотры тем)
- Значки и достижения
- Уровень доверия и членство в группах
- Связанные аккаунты (например, социальные логины)
В случае конфликтов сохраняются данные целевого пользователя. Если у обоих пользователей был связан анонимный пользователь, тот, который принадлежал исходному пользователю, будет утерян.
Входящие ссылки, ссылающиеся на исходного пользователя (например,
https://discourse.example.com/t/some-topic/17/3?u=source_username), после объединения не будут связаны с целевым пользователем.
Важное примечание об объединении пользователей и DiscourseConnect
Объединение учётных записей пользователей может повлиять на DiscourseConnect (ранее SSO) в зависимости от реализации:
- Если DiscourseConnect основан на адресе электронной почты, проблем не должно возникнуть, если в системе DiscourseConnect используется адрес электронной почты целевого аккаунта. Обратите внимание, что после объединения адрес электронной почты исходного пользователя станет дополнительным адресом на целевом аккаунте, что может вызвать проблемы с входом, если этот адрес позже будет использован с DiscourseConnect. При необходимости рассмотрите возможность удаления дополнительных адресов электронной почты после объединения.
- Если система DiscourseConnect использует уникальный идентификатор пользователя, отличный от идентификатора пользователя Discourse, объединение может вызвать проблемы, если уникальный идентификатор исходного аккаунта не будет правильно сопоставлен с целевым аккаунтом.
Объединение штатных пользователей
По соображениям безопасности объединение штатных пользователей должно выполняться через консоль.
Если ваш сайт размещён на платформе Discourse, обратитесь в team@discourse.org за помощью в объединении штатных пользователей.
Чтобы объединить штатных пользователей через консоль:
root@host:/var/discourse# ./launcher enter app
root@host-app:/var/www/discourse# rake users:merge['source_username','target_username']
Users merged!
root@host-app:/var/www/discourse#
Убедитесь, что перед запятой и после неё в команде нет пробелов.
Часто задаваемые вопросы (FAQ)
В: Что делать, если процесс объединения, кажется, завис?
О: Если на экране прогресса объединения в течение длительного времени не происходит изменений, попробуйте обновить страницу. Возможно, объединение уже завершено, но интерфейс не обновился.
В: Можно ли отменить объединение пользователей?
О: Нет, после объединения двух пользователей это действие нельзя отменить. Исходная учётная запись пользователя будет безвозвратно удалена после объединения.
В: Повлияет ли объединение пользователей на их сообщения и темы?
О: Все сообщения и темы исходного пользователя будут перенесены к целевому пользователю. Авторство этих элементов изменится, чтобы отразить целевого пользователя как создателя.

