В этом руководстве объясняется, как объединить несколько пользовательских учетных записей в одну учетную запись 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#
Убедитесь, что перед запятой и после него в команде нет пробелов.
Частые вопросы
В: Что произойдет, если процесс объединения, похоже, застрял?
О: Если экран прогресса объединения не показывает изменений в течение длительного времени, попробуйте обновить страницу. Возможно, объединение уже завершено, но интерфейс не обновился.
В: Могу ли я отменить объединение пользователей?
О: Нет, как только два пользователя объединены, это действие нельзя отменить. Исходная учетная запись пользователя будет удалена безвозвратно после объединения.
В: Влияет ли объединение пользователей на их сообщения и темы?
О: Все сообщения и темы исходного пользователя будут перенесены на целевого пользователя. Авторство этих элементов изменится, чтобы отражать целевого пользователя как создателя.

