Мне не удалось воспроизвести эту проблему, но за последний месяц я заметил два случая, когда пользователь якобы был деактивирован (согласно журналам действий персонала), но на самом деле деактивация не произошла (пользователь всё ещё мог входить в систему).
Например, этот пользователь был «деактивирован» 29 дней назад, но сегодня смог отправить мне личное сообщение (единственные другие действия персонала после деактивации — «проверка электронной почты»)
Это всё ещё происходит время от времени. Например, этот пользователь был изначально «деактивирован» 23 августа, но я только сейчас заметил, что он всё ещё был активен, и фактически деактивировал его.
Как пользователь может быть деактивирован дважды (без повторной активации между этими событиями)?
У меня есть ежедневная задача, которая запускает запрос для проверки такой ситуации. Вчера она ничего не вернула, а сегодня — этого одного пользователя. Похоже, что пользователь был правильно деактивирован 23 августа, но каким-то образом был активирован вчера (без записи об этом в логах).
Возможно ли активировать пользователя (через API или интерфейс) без оставления следа? Я предполагаю, что это могло произойти только при прямом изменении базы данных, чего я точно не делал (я единственный администратор).
Такое может случиться. Всё, что нужно деактивированному пользователю для повторной активации своей учетной записи, — это попытаться войти на сайт, а затем перейти по ссылке в письме с подтверждением, которое будет отправлено ему.
Когда деактивированный пользователь пытается войти, он увидит это модальное окно:
После перехода по ссылке в письме пользователь будет автоматически авторизован в Discourse.
Такое поведение сохраняется уже столько времени, сколько я себя помню. Я не думаю, что это ошибка, но могу и ошибаться. Отправка письма «Подтвердите свою новую учетную запись» пользователю, у которого уже есть учетная запись, кажется немного странной.
Редактирование: чтобы получить желаемое поведение, вам, вероятно, следует «приостановить» пользователя вместо его деактивации.