Неактивированные / деактивированные пользователи всё ещё отображаются на публичной странице пользователей

Я предполагаю, что это ошибка, так как при поиске деактивированного пользователя он не отображается в результатах поиска.

По сути, если перейти на страницу Discourse Meta и прокрутить её, деактивированные пользователи видны… но если попытаться найти их, они не появляются. (Вы также не можете упоминать их в сообщениях с помощью @.)

Не лучше ли скрыть неактивированных или деактивированных пользователей из всех публичных областей? (Я так думаю.)

Под неактивированными/деактивированными участниками я имею в виду тех, кто не подтвердил свой адрес электронной почты или должен подтвердить его повторно.

2 лайка

Вы имеете в виду неактивных пользователей:

  • Вы не можете их упомянуть, потому что они неактивны.
  • Вы не можете их найти, потому что они неактивны.

Это может быть ошибкой, но я так не думаю:

  • Неактивные пользователи всё ещё присутствуют в таблице пользователей.
  • Существует настройка сайта, позволяющая просматривать неактивные учётные записи — по умолчанию она отключена, но здесь она может быть включена:
    show inactive accounts
    Интересно, показывает ли meta.discourse.org неактивные учётные записи клиентов из-за хостинга для клиентов?
  • Существует настройка для удаления неактивных пользователей, если их необходимо удалить — по умолчанию это два года:
    clean up inactive users after days.
5 лайков

Выключено, но они всё ещё отображаются.

Думаю, поведение такое: они всё ещё видны в админ-панели, но не публично. Часто спамеры создают такие аккаунты с URL в имени или профиле (иногда порно и т.д.)

1 лайк

Настройка сайта «show inactive accounts» применяется только к пользователям, не являющимся сотрудниками. Если эта настройка отключена (по умолчанию она отключена), то обычные пользователи не смогут видеть карточку пользователя или страницу профиля отключённых пользователей. Однако пользователи-сотрудники всё равно смогут видеть карточку пользователя и страницу профиля.

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

3 лайка

Применяется ли это как к новым неподтвержденным участникам, так и к вручную деактивированным, Саймон?

Иногда спамеры, тролли и злоумышленники регистрируют учетные записи, используя URL в качестве имен пользователей или в других профилях.

Было бы достаточно просто скрыть пользователей из публичного каталога с помощью компонента темы или чего-то подобного? (Я все еще изучаю их, поэтому пока не уверен.) Я посмотрел CSS, но к строке деактивированных участников не применяется специальный класс… можно ли это добавить, пожалуйста?

1 лайк

Это неверно. Деактивированные пользователи не удаляются из каталога пользователей немедленно, но они должны быть удалены при выполнении задачи, которая обновляет каталог пользователей. Эта задача выполняется один раз в день.

Код, который добавляет и удаляет пользователей из каталога, проверяет, что пользователь «активен». Это означает, что неактивные пользователи, которые ранее были активны на вашем сайте, должны быть удалены из каталога пользователей в течение одного дня после их деактивации. Пользователи, которые никогда не были активны на вашем сайте, например, пользователь, который зарегистрировался, но не ответил на письмо с подтверждением, никогда не должны отображаться в каталоге пользователей.

Для сайтов, на которых включена настройка сайта «Требуется утверждение пользователей», неподтвержденные пользователи не будут добавляться в каталог пользователей.

Сообщите, если на вашем сайте наблюдается иное поведение.

4 лайка

Ах, спасибо, это понятно, Саймон.

Похоже, это не сработало на моей локальной среде (но я запускал сервер только по мере необходимости), но я только что создал тест на рабочем сайте, так что посмотрим, как всё пойдёт, и отчитаюсь вам :smiley:

1 лайк

Сработало :smiley: учётная запись исчезла из списка через день или около того.

Короткий вопрос по поводу пользователей, отключённых вручную: будут ли они подчиняться тем же правилам, что и стандартные неактивированные пользователи? В частности, будут ли они удалены из базы данных, если не активируют свою учётную запись в течение 30 дней (что, как я понимаю, является стандартным сроком, отведённым для новой учётной записи для подтверждения электронной почты)?

2 лайка

Хороший вопрос, @eviltrout, не мог бы кто-нибудь проверить эту логику? Я знаю, что для новых регистраций это верно — ведь кто будет заботиться о новой регистрации, если пользователь не потрудится активировать свой адрес электронной почты в течение 7 дней в процессе регистрации, — но не уверен насчёт ручной деактивации.

2 лайка

Я проверил логику: пользователи будут удалены через clean_up_inactive_users_after_days дней, если:

  • Они никогда ничего не публиковали
  • Их уровень доверия (TL) равен 0
  • Они не являются сотрудниками

Таким образом, отвечая на ваш вопрос: да, вручную отключённые пользователи будут удалены, но только если они ничего не публиковали и не повышали уровень доверия.

5 лайков

Итак, что именно делает деактивация пользователя? Сообщает ли она пользователю, что его аккаунт деактивирован? Ограничивает ли она его использование до момента повторной активации? Должен ли пользователь самостоятельно активировать свой аккаунт?

1 лайк

Это предотвращает вход пользователя в систему до тех пор, пока он не ответит на письмо с активацией, отправленное Discourse. Если пользователь попытается войти, он увидит уведомление, похожее на это:

Обратите внимание, что деактивация пользователя не вызывает автоматической отправки ему письма с активацией. Вы можете инициировать отправку такого письма, нажав кнопку «Отправить письмо с активацией», которая отображается в разделе «Активировано» на его странице администратора. Пользователь также может инициировать отправку письма с активацией, нажав кнопку «Отправить письмо с активацией повторно» в уведомлении, которое отображается ему при попытке входа на сайт.

4 лайка