Настройка «Скрыть профили новых пользователей» применяется к пользователям TL2

Описание этого параметра подразумевает, что затрагиваются только пользователи с уровнем доверия (TL) 1 или 0:

Скрывать профили пользователей с уровнем доверия 1 или ниже от публичного доступа, а также профили пользователей TL1 до их первого публичного поста.

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

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

2 лайка

При включении этой настройки скрываются профили пользователей с уровнем доверия 1 (TL1) или ниже до тех пор, пока они не опубликуют своё первое публичное сообщение. Однако даже если вы вручную повысите таких пользователей до уровня доверия 2 (TL2) без наличия у них публичных сообщений, их профили останутся скрытыми, так как логика видимости зависит не только от уровня доверия, но и от факта наличия у пользователя хотя бы одного публичного сообщения.

В таких ситуациях, как в вашем случае, когда пользователь активно участвует в обсуждениях, но не имеет публичных сообщений, и ему нужен видимый профиль, единственный способ сделать профиль публичным — это:

  1. Добиться того, чтобы пользователь опубликовал хотя бы одно публичное сообщение.
  2. Полностью отключить эту настройку, что может не соответствовать общим предпочтениям вашего сообщества.
1 лайк

Это противоречит описанию настройки, что и является проблемой, поднятой автором.

Условие для справки:

4 лайка

Я вижу, @ted / @hugh, полагаю, ошибка здесь в том, что этот код должен выглядеть так:

if user.user_stat.blank? || 
   (
     user.user_stat.post_count == 0 && 
     !user.has_trust_level?(TrustLevel[2])
   )
5 лайков

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

4 лайка

Эта тема была автоматически закрыта через 10 дней. Новые ответы больше не принимаются.