Объединение учётных записей пользователей

:bookmark: В этом руководстве объясняется, как объединить несколько учётных записей пользователей в одну учётную запись Discourse. Описаны процессы объединения нештатных пользователей через интерфейс Discourse и штатных пользователей через консоль.

:person_raising_hand: Требуемый уровень доступа: Администратор

Объединение учётных записей пользователей в Discourse позволяет свести несколько аккаунтов в один. Этот процесс может быть полезен в следующих ситуациях:

  1. Когда пользователь создал несколько учётных записей, возможно, из-за того, что забыл о предыдущей регистрации.
  2. Если пользователь создал новую учётную запись с новым адресом электронной почты вместо обновления существующей.
  3. Когда пользователь хочет объединить несколько учётных записей, используемых для разных целей (например, личных, рабочих или тестовых), в один аккаунт.

Объединение нештатных пользователей

Администраторы могут объединять нештатных пользователей напрямую через интерфейс Discourse.

:warning: Это действие необратимо. Исходная учётная запись пользователя будет удалена после объединения.

Чтобы объединить двух нештатных пользователей:

  1. Перейдите на страницу администрирования пользователя исходного аккаунта (того, из которого нужно выполнить объединение).
  2. Прокрутите страницу в самый низ.
  3. Нажмите кнопку «Объединить» (Merge).
  4. В первом всплывающем окне введите имя пользователя целевого аккаунта (того, в который нужно выполнить объединение) и нажмите «Перенести и удалить» (Transfer & Delete).
  5. Появится диалоговое окно подтверждения. Введите показанный текст подтверждения (например, transfer @source to @target) и нажмите «Перенести и удалить» (Transfer & Delete), чтобы запустить процесс объединения.

:information_source: Объединение крупных учётных записей может быть ресурсоёмким и занять некоторое время в зависимости от объёма данных, связанных с исходным пользователем.

Что объединяется?

При объединении учётных записей пользователей Discourse объединяет данные из более чем 50 таблиц, включая:

  • Сообщения и темы
  • Полученные и отправленные лайки
  • Личные сообщения
  • Информацию профиля пользователя
  • Предпочтения и настройки пользователя
  • Действия и активность пользователя (например, закладки, просмотры тем)
  • Значки и достижения
  • Уровень доверия и членство в группах
  • Связанные аккаунты (например, социальные логины)

В случае конфликтов сохраняются данные целевого пользователя. Если у обоих пользователей был связан анонимный пользователь, тот, который принадлежал исходному пользователю, будет утерян.

:warning: Входящие ссылки, ссылающиеся на исходного пользователя (например, https://discourse.example.com/t/some-topic/17/3?u=source_username), после объединения не будут связаны с целевым пользователем.

Важное примечание об объединении пользователей и DiscourseConnect

Объединение учётных записей пользователей может повлиять на DiscourseConnect (ранее SSO) в зависимости от реализации:

  • Если DiscourseConnect основан на адресе электронной почты, проблем не должно возникнуть, если в системе DiscourseConnect используется адрес электронной почты целевого аккаунта. Обратите внимание, что после объединения адрес электронной почты исходного пользователя станет дополнительным адресом на целевом аккаунте, что может вызвать проблемы с входом, если этот адрес позже будет использован с DiscourseConnect. При необходимости рассмотрите возможность удаления дополнительных адресов электронной почты после объединения.
  • Если система DiscourseConnect использует уникальный идентификатор пользователя, отличный от идентификатора пользователя Discourse, объединение может вызвать проблемы, если уникальный идентификатор исходного аккаунта не будет правильно сопоставлен с целевым аккаунтом.

Объединение штатных пользователей

По соображениям безопасности объединение штатных пользователей должно выполняться через консоль.

:information_source: Если ваш сайт размещён на платформе 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#

:warning: Убедитесь, что перед запятой и после неё в команде нет пробелов.

Часто задаваемые вопросы (FAQ)

В: Что делать, если процесс объединения, кажется, завис?
О: Если на экране прогресса объединения в течение длительного времени не происходит изменений, попробуйте обновить страницу. Возможно, объединение уже завершено, но интерфейс не обновился.

В: Можно ли отменить объединение пользователей?
О: Нет, после объединения двух пользователей это действие нельзя отменить. Исходная учётная запись пользователя будет безвозвратно удалена после объединения.

В: Повлияет ли объединение пользователей на их сообщения и темы?
О: Все сообщения и темы исходного пользователя будут перенесены к целевому пользователю. Авторство этих элементов изменится, чтобы отразить целевого пользователя как создателя.

10 лайков

A post was split to a new topic: Merge user button disappeared on my site

We also found another tricky situation with merging and SSO.

  1. User creates an SSO account at Organization A with an email address of first.last@organizationA.com
  2. The User moves to Organization B and creates an SSO account with an email address of first.last@organizationB.com
  3. We merge the two accounts
    1. The user’s primary email address is now first.last@organizationB.com
    2. BUT the merge process leaves first.last@organizationA.com as the SECONDARY email address
  4. The user moves BACK to Organization A, they attempt to sign in via SSO with first.last@organizationA.com, and they get stuck in the following login loop with this Discourse message: Slow down, you’re making too many requests

To fix, we removed first.last@organizationA.com from the SECONDARY email address on the merged account in step #3. This created another new account, which we then merged with the first.last@organizationB.com account.

We’ve also adjusted our merge process so that after merging, we immediately remove the secondary email address on the account.