Не уверен, что это лучшая категория для данной темы.
Я не видел, чтобы кто-то ещё писал об этом, но хочу сказать, что, на мой взгляд, название настройки сайта personal message enabled groups запутанное.
В Discourse есть глобальная опция personal message enabled groups, которая определяет минимальный уровень доверия, необходимый пользователю для создания личных сообщений.
У пользователей есть отдельная опция (флажок) для отправки или получения личных сообщений: user_option.allow_private_messages.
Мы хотим, чтобы все пользователи, не являющиеся сотрудниками/модераторами/администраторами, НЕ могли отправлять сообщения пользователям с trust_level_1. Этого, как мы надеемся, можно достичь, установив personal_message_enabled_groups в trust_level_2. Однако, похоже, что обе вышеупомянутые опции обрабатываются отдельно, и опция пользователя имеет приоритет. То есть пользователь с trust_level_1 действительно не может ИНИЦИИРОВАТЬ личные сообщения, но если allow_private_messages включён, значение can_send_private_message_to_user будет истинным.
Поскольку глобальная опция не переопределяет флажок, кажется неточным называть её personal message enabled groups, так как пользователь, не входящий в группу, установленную этим значением, всё ещё может участвовать в личных сообщениях (просто не может начать их). Я понимаю желание оставить возможность переопределения этой настройки сайта опцией пользователя, поэтому думаю, что эту настройку можно было бы назвать иначе, возможно, personal message initiating groups?
Понимаю, что это может запутать, но, судя по вашему сообщению, вам нужна другая новая настройка, которая решит эту задачу. Её можно было бы назвать, например, disallow_personal_message_groups. В этом случае пользователи из выбранных групп не смогут получать личные сообщения от кого-либо, кроме сотрудников (модераторов и администраторов).
Настройка personal_message_enabled_groups не предназначена для использования в качестве чёрного списка. Это своего рода дилемма; возможно, мы могли бы изменить текущее поведение так, чтобы пользователи, не входящие в personal_message_enabled_groups, также не могли получать сообщения от кого-либо, кроме сотрудников? Не уверен, сколько ожиданий это нарушит.
Я оставлю комментарий @tobiaseigen, чтобы он тоже высказал своё мнение.
Спасибо за ваш вклад. Я лишь указываю, что параметр personal_message_enabled_groups подразумевает, что снятие флажка означает personal_message_DISABLED_groups, что на самом деле неверно.
Я ценю активное сообщество здесь и сам Discourse. Спасибо!
Я провел тест с тестовыми пользователями и заметил несколько вещей:
Пользователи, состоящие в указанных здесь группах, имеют полный доступ к системе личных сообщений. Они видят раздел «Сообщения» в боковой панели, ссылку на сообщения в меню профиля пользователя и значок сообщений в меню уведомлений. Они также могут начинать и отвечать на личные сообщения.
Пользователи, которые НЕ входят в указанные здесь группы, могут только получать личные сообщения от тех, кому разрешено их отправлять. Они не могут начинать новые сообщения, но могут отвечать на сообщения, отправленные другими. В интерфейсе они вообще не видят систему сообщений, за исключением того, что получают уведомления о полученных личных сообщениях и могут получить к ним доступ таким образом. Они также могут перейти прямо в свой ящик личных сообщений по адресу, например, Discourse Meta - The Official Support Forum for Discourse, но не увидят опцию для начала нового сообщения. Они могут выйти из диалога с сообщением, которое получили.
Модераторы и администраторы могут быть исключены из этого списка, но всё равно имеют полный доступ к функции, как если бы они были указаны явно.
Полагаю, цель здесь — позволить сайтам скрыть или отключить систему сообщений для большинства пользователей, чтобы обсуждения проходили в темах и не были спрятаны там, где их трудно модерировать. В то же время администраторам и модераторам разрешено начинать личные сообщения, что является важной частью системы флагов.
На мой взгляд, сама настройка и её функционал в порядке, но описание можно сделать более понятным. Не уверен, что нужно объяснять, как работают групповые членства по уровням доверия. На странице администрирования пользователя видно, в каких группах по уровню доверия состоит пользователь.
Как вам такой вариант?
Пользователи в этих группах могут полноценно участвовать в системе личных сообщений. Они видят свои сообщения в меню навигации и могут отправлять сообщения любому пользователю сайта, который затем сможет ответить, включая пользователей, не входящих в указанные здесь группы. Примечание: модераторы и администраторы всегда имеют полный доступ.
Также я считаю, что нам действительно следует предусмотреть «обходной путь» к сообщениям, если пользователь не указан в списке, но получил одно или несколько сообщений от других. Мне кажется, что отсутствие способа вернуться к ним — это ошибка. Наиболее разумным решением, на мой взгляд, было бы вернуть раздел СООБЩЕНИЯ в профиле пользователя и полную горизонтальную навигацию Пользователь > Сообщения при просмотре сообщения. Думаю, возвращать это в боковую панель не обязательно, но, возможно, стоит?
Думаю, мы вряд ли сможем изменить поведение этой существующей настройки, так как, как вы правильно заметили, это нарушит ожидания. Но, как вы и сказали, мы можем добавить новую настройку, чтобы запретить определенным группам получать личные сообщения. Это могло бы стать ценной функцией для некоторых сообществ — кто-нибудь еще просил об этом?
Подводя итог тому, что мы могли бы сделать здесь:
Улучшить описание административной настройки personal_message_enabled_groups.
Всё равно отображать навигацию Пользователь > Сообщения, когда пользователь получил личное сообщение, даже если ему не разрешено отправлять их.
Добавить новую настройку disallow_personal_message_groups.
Спасибо за ваш подробный ответ @tobiaseigen. Мне кажется, что то, что вы предлагаете, выходит за рамки моих первоначальных идей. Было бы достаточно просто изменить описание personal_message_enabled_groups, чтобы прояснить его назначение. Спасибо!