Один из наших пользователей имеет две учётные записи Discourse: одна больше не используется, а в новую он не может войти. Похоже, причина в том, что его новая учётная запись у нашего провайдера CAS SSO использует тот же адрес электронной почты, что и его старая учётная запись на нашем форуме.
Я провёл эксперименты со своей тестовой учётной записью, пытаясь её деактивировать и удалить запись SSO. Однако это, похоже, блокирует новые входы в эту учётную запись, поскольку существующая запись больше не соответствует полезной нагрузке SSO, и теперь адрес электронной почты считается конфликтующим.
Также я пробовал изменить адрес электронной почты на неиспользуемой учётной записи пользователя в Discourse, чтобы он мог войти в свою новую учётную запись с этим адресом. Однако требуется подтверждение по электронной почте. Я настроил псевдоним адреса на нашем SMTP-сервере, чтобы перехватывать произвольные адреса. Но при переходе по ссылке мне необходимо войти в систему от имени пользователя через SSO. Проблема в том, что для этого мне пришлось бы реактивировать учётную запись пользователя, установить новый пароль, связать её с нашей базой данных участников и создать фиктивное членство у нашего провайдера SSO. Это, безусловно, возможно, но мне кажется, что я запутался в паутине, пытаясь исправить учётную запись этого пользователя.
Внесение изменений напрямую в базу данных с помощью SQL-запросов — это то, что я делал в прошлом, но это рискованно, и я бы предпочёл избежать такого подхода, если это возможно.
Если это не нарушит работу Discourse, я был бы рад получить возможность удалять адрес электронной почты с деактивированной учётной записи, а не просто помечать его как неподтверждённый.
Если есть другие способы решить эту проблему, пожалуйста, дайте знать. Спасибо!