Политика Discourse

:discourse2: Краткое описание Discourse Policy позволяет убедиться, что ваши пользователи ознакомились с чем-либо или выполнили какое-то действие, с возможностью отправки напоминаний.
:open_book: Руководство по установке Этот плагин входит в состав ядра Discourse. Отдельная установка плагина не требуется.

Возможности

Discourse Policy во многом перекликается с опросами: его цель — убедиться, что участники группы принимают определенные политики, нажимая на кнопку.

У него есть несколько специфических функций, отличающих его от опросов:

  1. Он должен применяться к группе.

  2. Он может периодически напоминать участникам группы еженедельно или ежедневно нажать кнопку принятия политики.

  3. Интерфейс позволяет очень легко увидеть, кто принял политику, а кто нет.

Настройка

Скриншоты

До нажатия кнопки принятия

После нажатия на «серую» иконку человека в правом верхнем углу

После нажатия кнопки принятия

Создание политики

Discourse Policy регистрирует пользовательский элемент BBCode [policy]. Это означает, что вам нужно написать этот блок кода в вашем сообщении там, где вы хотите показать эту политику.

[policy group=founders reminder=daily]
Я принимаю, что эта политика будет раздражать меня ежедневно, пока я не нажму кнопку принятия
[/policy]

В данном случае политика применяется к группе founders, и напоминание отправляется ежедневно всем пользователям, которые не приняли политику.

Настройки сайта

policy_enabled : Включить плагин discourse policy на сайте.

policy_restrict_to_staff_posts: Политики могут отображаться только в сообщениях сотрудников.

policy easy revoke: Одновременно отображать кнопки принятия и отзыва.

Атрибуты BBCode

Элемент [policy] может принимать следующие атрибуты.

  • group: имя группы, к которой применяется политика обязательный
  • version: номер версии политики; увеличьте число, чтобы потребовать повторного принятия политики всеми пользователями
  • reminder: напоминать пользователям группы о необходимости принять политику (еженедельно или ежедневно), необязательный, по умолчанию выключено
  • accept: текст для кнопки принятия, по умолчанию «Принять политику»
  • revoke: текст для кнопки отзыва, по умолчанию «Отменить политику»
  • renew: количество дней или текст, описывающий период (ежемесячно, ежеквартально или ежегодно), через который пользователь должен повторно принять политику
  • renew-start: первая дата, с которой начнется действие периода повторного принятия, например 17-10-2017, полезно, если вы хотите установить периодичность повторного принятия так, чтобы она происходила каждые полгода (январь, июнь)
  • add-users-to-group: принимает одну группу в качестве ввода; пользователи, принявшие политику, будут автоматически добавлены в эту группу (когда политика отзывается вручную или если версия политики обновляется, пользователь(и) удаляется из группы)
  • private: скрыть пользователей, принявших/не принявших политику

:information_source: Фоновая задача для проверки напоминаний о политике выполняется каждые 6 часов. Если элемент reminder установлен в еженедельный или ежедневный режим, пользователям, не принявшим политику, будут отправлены уведомления-напоминания о необходимости принять политику только в том случае, если они еще не получали уведомление-напоминание по этой политике за последние неделю или день.

Примеры использования

Базовая политика:

[policy group="team" reminder="daily" accept="Принять" revoke="Игнорировать" version="1"]
Я прочитал, понял и подтверждаю эту политику.
[/policy]

Увеличение номера ревизии, чтобы потребовать, чтобы все прочитали обновление:

[policy group="team" reminder="daily" accept="Принять" revoke="Игнорировать" version="2"]
Я прочитал, понял и подтверждаю эту политику. (Последнее обновление [date=2020-04-23 timezone="America/Los_Angeles"])
[/policy]

Задача периодического аудита:

[policy group="audit_committee" reminder="weekly" renew="90" renew-start="01-07-2019" version="1" accept="Задание выполнено"] 
Я убедился, что кому-то назначено это ежеквартальное задание по аудиту.
[/policy]

ЖУРНАЛ ИЗМЕНЕНИЙ

ПЛАН РАБОТЫ

  • Необязательное немедленное напоминание для новых политик
  • Возможно, разрешить применение политик определенными группами (расширение возможностей для сотрудников)
65 лайков
How to make users to explicitly agree to ToS
Have-to-read topics? (or RSVP topics)
Plugin to maintain group membership based on accepting a Policy
Ability to view if PM has been read (Moderation ability?)
Group Membership base on accepting a Discourse Policy
Force existing users to accept ToS
How to get email notifications when new users have signed up?
Improving Discourse Policy for large groups
Dashboard Report - Unaccepted Policies
Is there a plugin that helps with Age Verification on the site?
Restrict posting in a category until they "like" a topic
Restrict posting in a category until they "like" a topic
Topic should be a notification
Plugin or other option to require a post and a like?
Watching category mandatory
Policy reminder cannot be left empty
Bundling more popular plugins with Discourse core
Age prompt for NSFW catagories
Button to join group on post
Bump topic with API
Publish group read state
Delivered and read notifications?
Habit tracking within Discourse...is it possible?
Changing policy texts
Agree to additional terms before joining group
Know who has viewed your post
How can I compare arbitrary revisions of a post?
Require accepting new terms (after changes) as a modal inside forum
Tips into building a community aside a variety of already existing tools
How to force existing users to accept ToS
Plugin to gather approvals / signatures on an initiative?
Recommnded plugins for supporting a tech community run by a big enterprise?
AUP location
I can't display my policy
Best practices for communicating to user base

2 сообщения были перенесены в новую тему: Ограничить создание политик только для сотрудников?

4 сообщения были перенесены в новую тему: Можно ли запретить отмену согласия с определенными политиками?

Похоже, что ограничение в 200 и параметр policy_max_group_size были удалены в этом коммите. Я что-то упускаю?

3 лайка

6 сообщений были перенесены в новую тему: Пользователи получают напоминания, хотя уже приняли политику

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

Удаление display: flex для .cooked .policy .user-lists делает отображение корректным на рабочем столе:

В итоге я использовал следующий CSS:

/* Предотвратить переполнение списка пользователей политики */
.cooked .policy .user-lists {
    display: block;
}
3 лайка

Ошибка после установки плагина. Не знаю, почему. Что-то связано с «при попытке загрузить /admin/dashboard/general.json».

Ошибка сервера

при попытке загрузить [/admin/plugins]

Код ошибки: 500

Упс

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

Подробная информация об ошибке была зафиксирована в логах, и автоматически создана уведомление. Мы разберёмся в этом.

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

Здравствуйте,

Будут ли отображаться кнопки «Принять» и «Отклонить», если политика находится в теме категории, которая закрыта и не позволяет отвечать?

Спасибо

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

1 лайк

Привет, у меня есть вопрос:
Мы хотим использовать плагин Discourse Policy для: принудительного принятия Пользовательского соглашения (ToS) новыми пользователями. Требования:

  • Если они не принимают → они не могут использовать форум (видят только страницу ToS)
  • Когда они принимают → они могут использовать форум + получают значок “ToS”

Моё решение заключалось в создании новой темы, внутри которой я добавил следующее:
[policy group=trust_level_0 reminder=daily add-users-to-group=tos_accepted accept=“Я принимаю условия” version=“1”]
Нажимая «Я принимаю условия», я подтверждаю, что прочитал и согласен с Пользовательским соглашением.
[/policy]

Но если новый пользователь входит в систему, политика вообще не отображается, и он может делать всё что угодно. Мы хотим, чтобы доступ к нашей странице был возможен только после нажатия кнопки «Принять». Как это сделать? Спасибо.

Вы можете использовать пользовательское поле и добавить ссылки на страницы Условий использования (ToS) и Часто задаваемых вопросов (FAQ). Как только пользователь ознакомится с ними, он получит значок «Прочитал правила».

2 лайка

Спасибо за ваш ответ — всё сработало именно так, как вы и говорили. Однако я хочу, чтобы этот баннер появлялся после входа пользователя в систему, и доступ к странице открывался только после нажатия кнопки «Принять». В противном случае баннер должен оставаться видимым, а пользователь не сможет взаимодействовать со страницей.

То, что у меня есть сейчас, выглядит так:


после этого пользователь может свободно пользоваться нашей страницей.

Есть ли способ реализовать такое? Спасибо.

:partying_face: Этот плагин теперь включён в ядро Discourse в рамках Bundling more popular plugins with Discourse core. Если вы используете самостоятельный хостинг и применяете этот плагин, вам необходимо удалить его из вашего файла app.yml перед следующим обновлением.

3 лайка

Было бы здорово, если бы вы добавили возможность удалять пользователей из группы после принятия или отклонения заявки.

На данный момент эта функция лишь напоминает пользователям (по желанию) и добавляет их, если я не упускаю чего-то.

Спасибо!

2 лайка