Diskurs-Richtlinie

:discourse2: Summary Discourse Policy gives the ability to confirm your users have seen or done something, with optional reminders.
:open_book: Install Guide This plugin is bundled with Discourse core. There is no need to install the plugin separately.

Features

Discourse policy shares much of its DNA with polls, it has the goal of ensuring members of a group accept certain policies by clicking a button.

It has some specific features that set it apart from polls:

  1. It must apply to a group.

  2. It can optionally nag members of a group either weekly or daily to click accept on a policy.

  3. The UX makes it very easy to see who accepted and who did not accept a policy.

Configuration

Screenshots

Before clicking accept

After clicking “grey” person on top right

After clicking accept

Creating a policy

Discourse policy registers a custom [policy] BBCode element. Which means you need to write this block of code in your post where you want to show this policy.

[policy group=founders reminder=daily]
I accept this policy will annoy me daily until I click accept
[/policy]

In this case the policy applies to the founders group and a reminder is sent daily to all users that did not accept the policy.

Site settings

policy_enabled : Enable the discourse policy plugin on the site.

policy_restrict_to_staff_posts: Policies may only appear on staff posts.

policy easy revoke: Show the accept and revoke buttons at the same time.

BBCode attributes

The [policy] element can accept the following attributes.

  • group: the group name that policy will apply to required
  • version: the version number of the policy, bump number up to require all users re-accept the policy
  • reminder: remind users of the group to accept policy (weekly or daily), optional, default off
  • accept: text used for accept button, default is “Accept Policy”
  • revoke: text used for revoke button, default is “Revoke Policy”
  • renew: number of days or text describing period (monthly, quarterly or yearly) after which a user needs to re-accept policy
  • renew-start: the first date renewals will start at Eg: 17-10-2017, useful if you want to set the renewal cadence so it happens every half-year (Jan,June)
  • add-users-to-group: accepts a single group as input; users who accept the policy will be automatically added into this group (when policy is manually revoked or if the policy version is updated, user(s) gets removed from group)
  • private: hide users who accepted/did not accept the policy

:information_source: The backend job to check for policy reminders runs every 6 hours. If the reminder element is set to weekly or daily, users who have not accepted a policy will be sent notification reminders to accept the policy only if they have not already received a reminder notification for the policy within the past week or day.

Usage examples

Basic policy:

[policy group="team" reminder="daily" accept="Accept" revoke="Ignore" version="1"]
I have read, understand and acknowledge this policy.
[/policy]

Bumping the revision number, to require that everyone reads the update:

[policy group="team" reminder="daily" accept="Accept" revoke="Ignore" version="2"]
I have read, understand and acknowledge this policy. (Last updated [date=2020-04-23 timezone="America/Los_Angeles"])
[/policy]

Periodic auditing task:

[policy group="audit_committee" reminder="weekly" renew="90" renew-start="01-07-2019" version="1" accept="Assignment Complete"] 
I have ensured that someone is assigned to this quarterly audit task.
[/policy]

CHANGELOG

TODO

  • Optional immediate reminder for new policies
  • Possibly allow certain groups to apply policies (expanding on staff)

Last edited by @david 2025-07-22T13:14:42Z

Check documentPerform check on document:
65 „Gefällt mir“

2 Beiträge wurden in ein neues Thema aufgeteilt: Limit Policy creation to just staff?

4 Beiträge wurden in ein neues Thema aufgeteilt: Ist es möglich, den Widerruf der Zustimmung zu bestimmten Richtlinien zu verbieten?

Es sieht so aus, als ob das 200er-Limit und policy_max_group_size mit diesem Commit entfernt wurden. Übersehe ich etwas?

3 „Gefällt mir“

6 Beiträge wurden in ein neues Thema aufgeteilt: Personen erhalten Erinnerungen, obwohl sie die Richtlinie akzeptiert haben

Wenn eine Richtlinie mit langem Button-Text auf eine große Gruppe angewendet wird, wird die Benutzeroberfläche beschädigt: Im Screenshot unten sehen wir, dass die Avatare eine nahezu unendliche Spalte bilden, was es etwas umständlich macht. Ich werde mir das CSS ansehen, um zu sehen, ob das leicht behoben werden kann, aber wahrscheinlich sollte es eine Art Neugestaltung geben:

Wenn display: flex auf .cooked .policy .user-lists entfernt wird, sieht es auf dem Desktop gut aus:

Ich habe schließlich das folgende CSS verwendet:

/* Make policy user list not overflow */
.cooked .policy .user-lists {
    display: block;
}
3 „Gefällt mir“

Fehler nach der Installation des Plugins. Weiß nicht warum. Etwas bezüglich „beim Versuch, /admin/dashboard/general.json zu laden“.

Serverfehler

beim Versuch, [/admin/plugins] zu laden

Fehlercode: 500 Fehler

Huch

Das Forum hat ein unerwartetes Problem festgestellt. Wir entschuldigen uns für die Unannehmlichkeiten.

Detaillierte Informationen über den Fehler wurden protokolliert und eine automatische Benachrichtigung generiert. Wir werden uns das ansehen.

Es sind keine weiteren Maßnahmen erforderlich. Sollte der Fehler weiterhin bestehen, können Sie zusätzliche Details, einschließlich der Schritte zur Reproduktion des Fehlers, mitteilen, indem Sie ein Diskussionsthema in der Feedback-Kategorie der Website erstellen.

Hallo,

Werden die Schaltflächen „Akzeptieren/Widerrufen“ angezeigt, wenn sich die Richtlinie in einem Kategoriethema befindet, das geschlossen ist und keine Antworten zulässt?

Danke

Ich habe dieses Plugin eine Weile nicht benutzt, aber ich denke, es wird es den Benutzern ermöglichen, zu akzeptieren/zurückzuziehen, wenn ein Thema geschlossen wird, da das Drücken eines Buttons keine Antwort ist, was das Schließen verhindert.

1 „Gefällt mir“

Hallo, ich habe eine Frage:
Wir möchten das Discourse Policy Plugin verwenden, um: Erstbenutzer zu zwingen, die Nutzungsbedingungen (Terms of Service, ToS) zu akzeptieren. Anforderungen:

  • Wenn sie nicht akzeptieren → können sie das Forum nicht nutzen (sondern nur die ToS-Seite sehen)
  • Wenn sie akzeptieren → können sie das Forum nutzen + erhalten ein “ToS”-Badge

Meine Lösung war, ein neues Thema zu erstellen und darin Folgendes hinzuzufügen:
[policy group=trust_level_0 reminder=daily add-users-to-group=tos_accepted accept=“Ich akzeptiere die Bedingungen” version=“1”]
Durch Klicken auf „Ich akzeptiere die Bedingungen“ bestätige ich, dass ich die Nutzungsbedingungen gelesen habe und ihnen zustimme.
[/policy]

Wenn sich jedoch ein neuer Benutzer anmeldet, wird die Richtlinie überhaupt nicht angezeigt und er kann tun, was er will. Wir möchten, dass er erst dann auf unsere Seite zugreifen kann, wenn er auf „Akzeptieren“ klickt. Wie macht man das und danke

Sie könnten ein benutzerdefiniertes Feld verwenden und die ToS- und FaQ-Seite verlinken. Sobald ein Benutzer sie gelesen hat, erhält er den Ausweis „Richtlinien gelesen“.

2 „Gefällt mir“

Vielen Dank für Ihre Antwort – sie hat genau wie von Ihnen beschrieben funktioniert. Was ich jedoch wirklich möchte, ist, dieses Banner anzuzeigen, nachdem sich der Benutzer angemeldet hat, und den Zugriff auf die Seite nur zu gestatten, wenn der Benutzer auf „Akzeptieren“ klickt. Wenn nicht, sollte das Banner sichtbar bleiben und der Benutzer sollte nicht mit der Seite interagieren können.

Was ich jetzt habe, ist das:


Danach kann der Benutzer normal auf unsere Seite zugreifen

Gibt es eine Möglichkeit, das zu tun, und danke

:partying_face: Dieses Plugin ist jetzt Teil des Discourse-Kerns, wie in Bundling more popular plugins with Discourse core beschrieben. Wenn Sie selbst hosten und das Plugin verwenden, müssen Sie es vor Ihrem nächsten Upgrade aus Ihrer app.yml entfernen.

3 „Gefällt mir“

Es wäre schön, wenn Sie die Möglichkeit hinzufügen könnten, Benutzer aus einer Gruppe zu entfernen, wenn sie akzeptiert oder abgelehnt werden.

Derzeit werden Benutzer nur (optional) benachrichtigt und hinzugefügt – es sei denn, ich übersehe etwas.

Danke!

1 „Gefällt mir“