Как удалить запись SSO через API? Я использую Discourse и меняю внешний идентификатор (external_id). Как можно очистить старые записи этого пользователя, не теряя при этом самого пользователя и его сообщения?
Может быть, просто удалите все записи SSO один раз из консоли Rails и дайте им переподключиться по электронной почте? Я точно не помню, какую таблицу вы ищете, но это может быть что-то вроде:
UserAssociatedAccount.all.destroy_all
Кажется, есть другие темы, посвященные этой проблеме. Вы уже искали?
external_id, передаваемый провайдером SSO, не должен изменяться. Если есть возможность, избегайте изменения значений external_id для ваших пользователей.
Пока вы не устанавливаете параметр SSO require_activation в значение true, вы можете удалить все записи SSO, как упомянул Джей. Для этого откройте консоль вашего сайта и выполните:
SingleSignOnRecord.destroy_all
Перед выполнением этого действия убедитесь, что параметр require_activation в полезной нагрузке SSO не установлен в true. Если этот параметр установлен, пользователи не будут найдены по адресу электронной почты при следующем входе на сайт. Вместо этого при попытке входа они получат ошибку.
Если параметр require_activation не установлен в true, пользователи будут найдены по адресу электронной почты при следующем входе в Discourse. В этот момент для них будет создана новая запись SSO. Если адреса электронной почты каких-либо пользователей не синхронизированы между вашим сайтом провайдера SSO и Discourse, при следующем входе в Discourse возникнут проблемы. Некоторые детали по устранению таких проблем можно найти здесь: Debug and fixing common DiscourseConnect issues.
Если вы собираетесь выполнить команду, которую я привел выше, обязательно создайте резервную копию базы данных вашего сайта перед её запуском. В случае возникновения проблем вы сможете восстановить резервную копию.
Мой форум Discourse находится на тарифе STANDARD. Возможно ли получить доступ к консоли Rails в этом плане? Если да, то как мне это сделать?
Отправьте электронное письмо на support@discourse.org или напишите в @support, чтобы выполнить указанную выше команду.