Подтверждение активированного поэтапного пользователя отправляет ему сообщение о входе в систему, но не позволяет войти

Шаги для воспроизведения

  1. Перейдите на /my/messages
  2. Нажмите «Новое сообщение»
  3. Введите адрес электронной почты, который не привязан ни к одному существующему пользователю
  4. Напишите и отправьте сообщение.

Это отправит письмо и создаст пользователя в статусе «ожидание».

  1. В панели администратора активируйте пользователя.
    a. В моём случае мой сайт требует одобрения новых аккаунтов, поэтому мне также пришлось одобрить пользователя. Не уверен, насколько это универсально.
  2. Пользователь получает письмо:

Вы были одобрены на …

Сотрудник одобрил ваш аккаунт на …

Теперь вы можете получить доступ к своему новому аккаунту, войдя по адресу:

  1. Пользователь переходит по указанной в письме ссылке.

Ожидаемый результат

Пользователь может войти в систему

Фактический результат

  • В диалоговом окне входа при вводе адреса электронной почты и выборе «Пропустить пароль; отправить мне ссылку для входа» появляется сообщение «Аккаунт не найден …».

  • При нажатии «Забыли пароль», а затем «Сбросить пароль» появляется сообщение «Аккаунт не найден …».

  • Пользователь может создать новый аккаунт с этим адресом электронной почты, но (по крайней мере, в моих тестах) это снова переводит его в статус «неактивен» и отправляет письмо «Подтвердите свой новый аккаунт». Это не то, чего можно ожидать после того, как ему уже сообщили: «Вы были одобрены»…

Дополнительная бонусная проблема: сообщение, которое я отправил из Discourse в первый раз, когда столкнулся с этой проблемой, содержало ссылку-приглашение. Пользователи не могли воспользоваться этой ссылкой-приглашением:

Я воспроизвёл проблему без ссылки-приглашения, поэтому не упоминал её в описании воспроизведения, но указываю здесь, так как это, возможно, ещё один намёк, который поможет понять, в какое странное состояние мне удалось привести учётные записи.

Интересно, что вы можете активировать пользователя со статусом «ожидает регистрации» через страницу администратора пользователей. Пользователи со статусом «ожидает регистрации» не должны входить в систему, поэтому возможность их активации кажется нелогичной. Такие пользователи могут превратиться в полноценных пользователей, создав учётную запись, после чего получат доступ ко всем сообщениям, в которых они ранее участвовали только по электронной почте.

Так что один из вариантов для вас — просто не делать этого. :slight_smile: Когда вы хотите пригласить кого-то на свой сайт, пригласите его обычным способом, а не создавая пользователя со статусом «ожидает регистрации» через электронную почту.

Но, возможно, мы сможем предотвратить такое поведение на случай, если с ним столкнутся другие. Я проведу быстрый тест на своём сайте, чтобы проверить, смогу ли я воспроизвести эту ситуацию.

1 лайк

Хорошо, мне удалось воспроизвести это на моем сайте. Действительно, можно активировать пользователя в режиме ожидания, что неверно. Отличное замечание!

2 лайка

Это имеет смысл!

Я смог подтвердить, что для пользователя в статусе «staged» (который ещё не активирован) это работает отлично. Если бы я, продолжив своё первоначальное сообщение, отправил приглашения напрямую (то есть выбрал «Ограничить этим адресом электронной почты», а затем нажал кнопку «Отправить приглашение по электронной почте») на эти адреса, они могли бы просто перейти по ссылке приглашения и создать учётную запись.

Однако я не могу сделать это для активированного пользователя в статусе «staged»: в этом случае попытка пригласить его завершается ошибкой, так как этот адрес электронной почты уже связан с учётной записью.

Но поскольку пользователь в статусе «staged» никогда не должен быть активирован, это не должно стать проблемой :slight_smile:

Разумеется, это было приглашение с ограничением «N использований». Не уверен, влияет ли это на возможность использования ссылки приглашения, но, учитывая то, что мы уже выяснили, подозреваю, что эта ссылка сработала бы нормально, если бы я не активировал учётные записи заранее.

1 лайк