Конечно, в последний раз я комментировал это, но, разумеется, могу добавить больше контекста. Ситуация следующая:
Контекст:
В Discourse есть несколько категорий.
Категории строго привязаны к «темам».
Некоторые из этих тем могут быть более горячими, чем другие (например, спорт).
Иногда пользователь ведёт себя нормально (даже идеально) во всём сообществе, но в определённой теме/категории (инвестиции, убеждения и т. д.) он ведёт себя совершенно иначе.
Моя позиция здесь такова: это поведение похоже на то, как если бы алкоголик оказался перед мини-баром или открытым баром. Можно попросить его не прикасаться к этому или «просто пить воду», но что вы будете делать… такое случается.
Я стараюсь не удалять из сообщества в целом полностью работоспособных пользователей только из-за той самой категории, которая выводит их из себя.
Поэтому:
Моя первоначальная идея заключалась в том, чтобы добавить таких пользователей в группу, которую затем исключить из одной или нескольких категорий. Что-то вроде «мягкого бана» или «мягкого наказания», чтобы стимулировать охлаждение или даже просто удалить людей из определённых категорий.
Проблемы:
Группы добавляют, но не исключают, поэтому я не могу использовать их так, как планировал.
Возможным решением было бы добавить всех пользователей в группу, имеющую доступ к указанным категориям, а затем исключить тех, кого нужно мягко забанить. Проблема в том, что нет механизма автоматического добавления новых пользователей в новую категорию (за исключением уровней доверия).
Я не могу полагаться только на уровни доверия, так как они связаны с функциональностью, которую я не хочу удалять у этих людей.
Обновления:
Я обнаружил расширение от @Falco здесь, и, возможно, оно сможет мне помочь.
Понятно, хотя я задаюсь вопросом: не создаёте ли вы, предоставляя людям проблемы, целую россыпь технических сложностей? Скрытие категорий через CSS может заставить их исчезнуть из некоторых частей интерфейса, но не помешает пользователям открывать страницы этих категорий другими способами.
Разве у вас нет модератора или активного сообщества в этом сообществе? Именно в таких сценариях человеческий фактор играет критическую роль, и программному обеспечению, вероятно, стоит отойти на второй план.
Если ваше сообщество не находится за платным доступом, скрытие публичной категории (которая, предположительно, видна анонимно) либо заставит пользователя создать скомпрометированную учётную запись, либо, возможно, даже локально переопределит любые изменения CSS и продолжит нарушать правила. Пользователи должны видеть, что такие нарушения решаются напрямую: сначала с помощью вежливых запросов, напоминающих о вашей политике, затем с помощью временных ограничений (приостановка аккаунта) и, наконец, путём полного блокирования доступа.
Отличное программное обеспечение не может устранить пробелы в вашей культуре. Подтверждая границы и указывая на плохое поведение, вы даёте этим пользователям шанс исправиться, потенциальных нарушителей отпугиваете, а остальные пользователи понимают, что такое отношение к ним неприемлемо.
Тот факт, что кто-то делает много хороших дел, не означает, что его не следует наказывать за плохие поступки, даже если это лишает его возможности продолжать делать хорошее.
Приостановите действие аккаунта человека, а если он и дальше будет вести себя плохо — исключите его.
Нет, потому что, как сказали Iceman и Gunnar, эти люди считаются «идеальными» и «ценными» в других категориях.
Если бы они были готовы просто выгнать их, они бы не искали способы их accommodировать.
У меня похожая/отличная ситуация: у нас есть Discourse, принадлежащий клубу, по правилам которого они обязаны предоставлять доступ как минимум к некоторым категориям (это требуется по закону). Но мы всё же хотим иметь возможность исключать проблемных пользователей из определённых категорий.
Я создал тему:
… но я всё ещё открыт к другим возможным решениям.
Тогда создайте группу для ACCESS_TO_REQUIRED_GROUPS и ещё одну для ACCESS_TO_GROUPS_NOT_FOR_JERKS, после чего настройте права доступа к категориям соответствующим образом. И просто не допускайте проблемных пользователей в другую группу.
Создайте компонент темы и скройте группу, которую вы не хотите, чтобы «придурки» видели. Любой, кто добавлен в список «придурков» в компоненте, не увидит группу для вступления. Скройте её с помощью CSS. Для большинства случаев этого будет достаточно.