Иногда у вас бывает ценный пользователь, который может вести себя агрессивно в личных сообщениях. В таком случае полезно полностью запретить этому пользователю использовать личные сообщения. Это может быть временной мерой, чтобы держать его в рамках (применяется к конкретному пользователю), или постоянной функцией — например, её можно применить к группе, чтобы добавление пользователя в группу «только публичные» «давало» ему «запрет на личные сообщения».
Это звучит точно как Уровень доверия?
Почему бы не понизить их (временно) и затем повысить?:

Вот что я думал. Я знаю, что это «ценный пользователь», но если он груб в сообщениях, не отразится ли такое поведение и в публичных темах?
Хотя это хорошая идея, @merefield, комбинация TL также затронет других людей.
Я бы хотел, чтобы ситуация была простой, но это не так.
Извините, но моё сообщение касается не самой предлагаемой функции, а описанного вами случая.
Отметка прямых сообщений работает.
Осуждаемые сообщения помечаются получателем (получателями)? Если да, то почему не применить стандартную процедуру модерации? То есть, выдать предупреждение и сообщить, что при продолжении публикации таких сообщений последует блокировка?
Не сработало. Пользователь уже был заблокирован один раз. Будет заблокирован снова. Мы ищем общее решение, переиспользуемую функцию.
Это не очень похоже на «ценного пользователя». В прошлый раз, когда пользователя блокировали, предупреждали ли его/её о возможной блокировке? Угроза блокировки может внести незначительные изменения. Если нет, этот человек не изменит своего поведения.
Я бы сказал, что @hellekin отметил функцию, которая отражает реальную потребность, с которой сталкивалось сообщество, которое он курирует. Хотя может показаться, что проблему, которую она решает, можно решить иначе, это всё равно валидный запрос на новую функцию. Если мы хотим обсудить возможные способы решения предполагаемой проблемы, будет полезно создать новую тему, чтобы мы могли сосредоточиться на обсуждении предлагаемой функции.
Также стоит отметить, что если мы хотим создать тему для обсуждения других решений предполагаемой проблемы, нам следует помнить и, возможно, подождать, пока hellekin не попросит решение. ![]()
Возможно, решением будет компонент темы, скрывающий кнопку сообщения.
Теперь вопрос: вы хотите запретить/заглушить личные сообщения всем пользователям или только тем, кто надоедает?
@osioke, блокирует ли опция профиля «заглушить пользователя» возможность отправки ему личных сообщений от «заглушившего»?
Отправка ЛС и прямых сообщений должна работать, но уведомление отправлено не будет; это объясняется в описании функции заглушения.
Также не нужно обращаться ко мне напрямую с вопросом, чтобы другие могли присоединиться к обсуждению, если у них есть мысли, и не ждать моего ответа. ![]()
На форуме, который я со-администрирую, тоже был похожий пользователь. Очень знающий и отзывчивый человек, но с неприятными социальными привычками, которые периодически проявлялись. Его иногда замечали в публичных обсуждениях, но личные сообщения были ещё хуже — он не применял того же уровня самоконтроля и осторожности, что и в публичном пространстве. После нескольких предупреждений и нескольких блокировок нам в итоге пришлось навсегда забанить этого пользователя. Поэтому я понимаю желание заблокировать возможность отправки личных сообщений для отдельных пользователей. Однако в случае, о котором я говорю, я не думаю, что такая функция в конечном итоге предотвратила бы бан этого пользователя, учитывая его периодически достаточно проблемное поведение в публичном пространстве. Но я могу представить, что для некоторых пользователей политика запрета личных сообщений была бы эффективной и позволила бы им устойчиво участвовать в более гармоничном сообществе.
В идеале пользователь должен быть заглушен по умолчанию, а отдельные пользователи могли бы сами снимать это ограничение для себя. Однако администраторы должны будут вручную заглушать пользователя. Имеет ли это смысл? Я имею в виду, выполнимо ли это в рамках существующей системы mute-ation?
Хороший вопрос, хотя я не уверен. Давайте оставим этот вопрос более техническим специалистам в нашей компании ![]()
После консультации с @dax я понял, что технически это возможно с помощью функции отключения звука, но это потребует много ручной работы по отключению звука для каждого нового пользователя.
Тем не менее, это может создать проблему, которая ждёт своего взрыва, но, похоже, вы об этом знаете и принимаете это, так что ![]()
Я бы тоже поступил так:
- Минимальный уровень доверия для отправки личных сообщений: уровень 1
- Уровень доверия проблемного пользователя: 0
Кажется, что при ручном установке уровня доверия автоматическое повышение не происходит, но я могу ошибаться.
Кроме того, поскольку они помечены, можно использовать это и сделать личные сообщения доступными на уровнях доверия 3 и 4:
@osioke Возможно, проще будет создать
это для уровней доверия 2, 1 и 0? Тогда, если у пользователя уровня 0 будет 3 отметки за определённый период, он не получит повышение до привилегий личных сообщений — это, по сути, устраняет необходимость ручной работы.
Я не понимаю, почему новые пользователи должны быть затронуты.
Если вы измените настройку пользователя глобально через консоль Rails, новое значение применится ко всем существующим пользователям, но не к новым. Вы можете запускать эти команды, например, раз в месяц, чтобы добавлять пользователей в список заглушенных, либо вам придется делать это вручную для каждого нового пользователя.
Это означает, что флаг «заглушить» будет скопирован для этого пользователя всем остальным пользователям. Звучит довольно утомительно, особенно если мы захотим снять этот флаг в будущем или если нужно запретить другому пользователю отправлять сообщения всем остальным глобально, сохранив при этом его другие возможности (уточнение для тех, кто неправильно понял истинную потребность).
Точно! Поэтому я и сказал, что это может стать проблемой.
Вы просто фиксируете их на этом уровне, например:


