Я предполагаю, что это ошибка, так как при поиске деактивированного пользователя он не отображается в результатах поиска.
По сути, если перейти на страницу Discourse Meta и прокрутить её, деактивированные пользователи видны… но если попытаться найти их, они не появляются. (Вы также не можете упоминать их в сообщениях с помощью @.)
Не лучше ли скрыть неактивированных или деактивированных пользователей из всех публичных областей? (Я так думаю.)
Под неактивированными/деактивированными участниками я имею в виду тех, кто не подтвердил свой адрес электронной почты или должен подтвердить его повторно.
Вы не можете их упомянуть, потому что они неактивны.
Вы не можете их найти, потому что они неактивны.
Это может быть ошибкой, но я так не думаю:
Неактивные пользователи всё ещё присутствуют в таблице пользователей.
Существует настройка сайта, позволяющая просматривать неактивные учётные записи — по умолчанию она отключена, но здесь она может быть включена: show inactive accounts
Интересно, показывает ли meta.discourse.org неактивные учётные записи клиентов из-за хостинга для клиентов?
Существует настройка для удаления неактивных пользователей, если их необходимо удалить — по умолчанию это два года: clean up inactive users after days.
Думаю, поведение такое: они всё ещё видны в админ-панели, но не публично. Часто спамеры создают такие аккаунты с URL в имени или профиле (иногда порно и т.д.)
Настройка сайта «show inactive accounts» применяется только к пользователям, не являющимся сотрудниками. Если эта настройка отключена (по умолчанию она отключена), то обычные пользователи не смогут видеть карточку пользователя или страницу профиля отключённых пользователей. Однако пользователи-сотрудники всё равно смогут видеть карточку пользователя и страницу профиля.
Отключённый пользователь будет отображаться в вашем публичном каталоге пользователей независимо от того, отключили вы настройку сайта «show inactive accounts» или нет.
Применяется ли это как к новым неподтвержденным участникам, так и к вручную деактивированным, Саймон?
Иногда спамеры, тролли и злоумышленники регистрируют учетные записи, используя URL в качестве имен пользователей или в других профилях.
Было бы достаточно просто скрыть пользователей из публичного каталога с помощью компонента темы или чего-то подобного? (Я все еще изучаю их, поэтому пока не уверен.) Я посмотрел CSS, но к строке деактивированных участников не применяется специальный класс… можно ли это добавить, пожалуйста?
Это неверно. Деактивированные пользователи не удаляются из каталога пользователей немедленно, но они должны быть удалены при выполнении задачи, которая обновляет каталог пользователей. Эта задача выполняется один раз в день.
Код, который добавляет и удаляет пользователей из каталога, проверяет, что пользователь «активен». Это означает, что неактивные пользователи, которые ранее были активны на вашем сайте, должны быть удалены из каталога пользователей в течение одного дня после их деактивации. Пользователи, которые никогда не были активны на вашем сайте, например, пользователь, который зарегистрировался, но не ответил на письмо с подтверждением, никогда не должны отображаться в каталоге пользователей.
Для сайтов, на которых включена настройка сайта «Требуется утверждение пользователей», неподтвержденные пользователи не будут добавляться в каталог пользователей.
Сообщите, если на вашем сайте наблюдается иное поведение.
Похоже, это не сработало на моей локальной среде (но я запускал сервер только по мере необходимости), но я только что создал тест на рабочем сайте, так что посмотрим, как всё пойдёт, и отчитаюсь вам
Сработало учётная запись исчезла из списка через день или около того.
Короткий вопрос по поводу пользователей, отключённых вручную: будут ли они подчиняться тем же правилам, что и стандартные неактивированные пользователи? В частности, будут ли они удалены из базы данных, если не активируют свою учётную запись в течение 30 дней (что, как я понимаю, является стандартным сроком, отведённым для новой учётной записи для подтверждения электронной почты)?
Хороший вопрос, @eviltrout, не мог бы кто-нибудь проверить эту логику? Я знаю, что для новых регистраций это верно — ведь кто будет заботиться о новой регистрации, если пользователь не потрудится активировать свой адрес электронной почты в течение 7 дней в процессе регистрации, — но не уверен насчёт ручной деактивации.
Я проверил логику: пользователи будут удалены через clean_up_inactive_users_after_days дней, если:
Они никогда ничего не публиковали
Их уровень доверия (TL) равен 0
Они не являются сотрудниками
Таким образом, отвечая на ваш вопрос: да, вручную отключённые пользователи будут удалены, но только если они ничего не публиковали и не повышали уровень доверия.
Итак, что именно делает деактивация пользователя? Сообщает ли она пользователю, что его аккаунт деактивирован? Ограничивает ли она его использование до момента повторной активации? Должен ли пользователь самостоятельно активировать свой аккаунт?
Это предотвращает вход пользователя в систему до тех пор, пока он не ответит на письмо с активацией, отправленное Discourse. Если пользователь попытается войти, он увидит уведомление, похожее на это:
Обратите внимание, что деактивация пользователя не вызывает автоматической отправки ему письма с активацией. Вы можете инициировать отправку такого письма, нажав кнопку «Отправить письмо с активацией», которая отображается в разделе «Активировано» на его странице администратора. Пользователь также может инициировать отправку письма с активацией, нажав кнопку «Отправить письмо с активацией повторно» в уведомлении, которое отображается ему при попытке входа на сайт.