Заморозка уровня доверия

@Heliosurge Эта идея показалась мне очень интересной. Из того, что я прочитал о плагине, некоторые функции уже реализованы. В моём случае для решения основной проблемы мне понадобилось бы следующее:

Название скрипта Плагин Описание
Блокировка уровней доверия automation Если пользователь публикует слишком много, содержит слишком много и/или неуместных изображений, злоупотребляет системой флагов или подобное, альтернативой вышеуказанному является блокировка пользователя на уровне доверия 0. Это ограничит количество (и частоту) тем и сообщений, которые пользователь может создавать, а также предотвратит включение слишком большого количества изображений/ссылок и запретит пользователю отправлять флаги. Уровни доверия можно настроить на странице администратора пользователя.
Отключение пользователя automation Отключённые пользователи не могут создавать новые темы, сообщения, флаги или личные сообщения на сайте. Они всё ещё могут выполнять другие действия, такие как «лайки» сообщений, чтение тем, ответы на личные сообщения и т. д. Кроме того, они могут общаться с модераторами через личные сообщения, чтобы вы могли продолжать общение с ними и пытаться исправить поведение.
Приостановка пользователя automation Приостановленные пользователи не могут войти в систему и, следовательно, не могут выполнять какие-либо действия на форумах. Приостановка — это самое строгое возможное средство воздействия на пользователя, и её следует использовать экономно. Как и в случае с отключением, приостановка пользователя осуществляется со страницы администратора пользователя. Как и отключение, приостановка действует в течение определённого периода времени. Возможно, стоит сначала приостановить пользователя на короткий срок, и если пользователь вернётся и продолжит такое поведение, увеличить срок приостановки.
Заморозка уровня доверия trigger-automation В случае отключённых или приостановленных пользователей срабатывает триггер «Блокировка уровней доверия».

Как работает триггер заморозки уровней доверия

  1. Заморозка уровня доверия — автоматически запускает следующие события:
    • Отключение пользователя — Предупреждение
    • Приостановка пользователя — Удар 1
    • Блокировка уровня доверия — Удар 2

Итоговое решение

  1. Кратко: это будет 4 плагина. Только последний плагин вызывает остальные, как показано в следующей теме: Как работает триггер заморозки уровней доверия.
  2. Несмотря на случаи отключения или приостановки пользователей, приведённые выше примеры были реализованы для случаев: Спам, Риск безопасности аккаунта, Оскорбительные сообщения или поведение, Отчёт — когда пользователи запрашивают блокировку своего уровня доверия. Также будут случаи, когда пользователи были отключены или приостановлены по личным причинам, то есть по собственному заявлению:
    • «Я прошу заблокировать уровень доверия, так как не хочу быть лидером чего-либо».
    • «Я в поездке и хочу заблокировать свой уровень доверия, не уверен, что меня не взломают в этот период».
    • «Я думаю, что мой аккаунт взломан, хочу заморозить уровень доверия до расследования сообществом Discourse».
    • Примечание: Пользователи, которые самостоятельно сообщили о проблеме со своим аккаунтом, могут запросить приостановку аккаунта, его отключение или, как в приведённом случае, блокировку уровня доверия.
      • Если пользователь предоставит доказательства того, что его не следует приостанавливать, отключать или защищать уровень доверия, аккаунт будет восстановлен в обычном состоянии.

Примечания

  1. Я делал это несколько раз, спасибо за обратную связь, JammyDodger ;D Я прочитал этот документ, и он мне кажется довольно интересным: https://meta.discourse.org/t/discourse-moderation-guide
  2. Dan DeMontmorency — Что вы думаете об этой идее? Хорошая ли это идея? Возможно ли создать что-то подобное?

Новые идеи

  1. Альтернативным решением может быть следующее: это можно реализовать с помощью suspend-a-user-via-the-api,
    silence-user-via-api, add-a-user-to-a-group-via-api, discourse-docs-api-org, auto-suspend-inactive-user, discourse_api_pull_121. Единственная проблема в том, что я пока не нашёл никакой информации от API о блокировке уровня доверия.
  2. Возможно, существуют плагины, которые взаимодействуют с API для этого: silence-user-via-api, auto-suspend-inactive-user, «locking trust level», suspend-a-user-via-the-api.
  3. Моя идея заключается в создании плагина «Безопасность доверия», который будет взаимодействовать со следующими API: silence-user-via-api, auto-suspend-inactive-user, «locking trust level», suspend-a-user-via-the-api.
  4. Моя первоначальная идея заключалась в том, что было бы действительно здорово иметь следующие конечные точки:
    • ${this.url}admin/users/${userId}/groups/report/spam
    • ${this.url}admin/users/${userId}/groups/report/lockingtrustlevel
    • ${this.url}admin/users/${userId}/groups/report/accountsecurityatrisk
    • ${this.url}admin/users/${userId}/groups/report/abusivemessagesorbehavior
    • ${this.url}admin/users/${userId}/groups/userwishthis/lockingtrustlevel
    • ${this.url}admin/users/${userId}/groups/userwishthis/accountsecurityatrisk
    • ${this.url}/admin/users/:user_id/report/spam
    • ${this.url}/admin/users/:user_id/report/lockingtrustlevel
    • ${this.url}/admin/users/:user_id/report/accountsecurityatrisk
    • ${this.url}/admin/users/:user_id/report/abusivemessagesorbehavior
    • ${this.url}/admin/users/:user_id/userwishthis/accountsecurityatrisk
    • ${this.url}/admin/users/:user_id/userwishthis/lockingtrustlevel

Но тем, что уже решает проблему, было бы реализовать этот poc — proof of concept:

  • ${this.url}/admin/users/:user_id/silence
  • ${this.url}/admin/users/:user_id/lockingtrustlevel
  • ${this.url}admin/users/${userId}/groups/silence
  • ${this.url}admin/users/${userId}/groups/lockingtrustlevel
2 лайка