Forum care

From MoodleDocs

Forum care is a local plugin that lets students report problem posts in forums. Reports go privately to the teachers, who review them in a queue. Optional thresholds can hide a post or suspend a user automatically after enough reports, so a forum stays safe even before a teacher has looked. With AutoReport, a report reason can also report posts that contain chosen words or phrases automatically.

Installation

Install the plugin from the Moodle plugins directory, or download the ZIP file and follow Installing plugins. The files go in the folder local/forumcare. The plugin supports Moodle 5.0 to 5.3.

After installation:

  1. Check the thresholds in Site administration > Plugins > Local plugins > Forum care (see Site settings).
  2. Add at least one report reason, with the Report reasons link at the bottom of that page.
  3. Turn on reporting in each forum where you want it (see below). Reporting is off in every forum until a teacher turns it on.

Turning on reporting in a forum

The Forum care section of a forum's settings.
  1. Open the forum's settings.
  2. Expand the Forum care section and tick Enable "Report this post" for this forum.
  3. Optionally, change this forum's thresholds. Set a threshold to 0 to turn that protection off for this forum only.
  4. Save.

Reporting a post

Report this post on other people's posts. Students never see it on their own posts.
The Report post dialog.

In a forum with reporting turned on, each post by someone else has a Report this post link, at the start of the post's links, apart from Reply so that it is not clicked by mistake.

  1. Click Report this post.
  2. Choose the Reason for reporting and, optionally, add Additional details.
  3. Click Report post.

The dialog says clearly that a report is not a reply: it goes privately to the forum's moderators and does not appear in the forum. Once a student has reported a post, the link changes to Post reported. Students can report only posts they can see.

Reviewing reports

The teacher's review queue, with the actions for a pending report.

Teachers open the review queue from More > Forum care in the course. It lists pending reports and reports reviewed in the last 7 days; Show all reports lists the rest. It can be filtered by Forum, Reporter, Reportee and Report type (All reports, AutoReport only or Reports by people only), and sorted by any column. The post, forum and people link to their pages. Reports filed by AutoReport show AutoReport as the reporter. After an action, the queue returns to the same filtered view.

In a course with separate groups, a moderator who cannot access all groups sees and acts on only reports about posts in their own groups and in discussions for all participants.

For each report, a teacher can:

  • Mark as OK: the post is fine (and is shown again if it was hidden).
  • Hide post: replace the post with a notice that a moderator has hidden it. The original text is kept, and Mark as OK restores it.
  • Mark as frivolous: the report was not justified. Students whose reports are marked frivolous too often are blocked from reporting (see the thresholds below).
  • Suspend user in this course: suspend the author's enrolment in the course.
  • Suspend user site-wide: suspend the author's account (for users with the capability to do so).
  • Undo review: return a reviewed report to pending. Actions already taken, such as a suspension, are not undone.

Moderators (site administrators, and anyone who can review reports or update the course) are never suspended, automatically or by hand. The plugin does not delete posts: use the forum's own Delete instead.

Automatic actions

  • A post is hidden automatically once it has the set number of open reports. The notice says that it is hidden pending a moderator's review. If its author edits a hidden post, it stays hidden.
  • A user's enrolment in the course is suspended once the set number of different students have open reports against their posts. One student reporting many posts cannot trigger it alone.
  • Optionally, set by administrators only, a user's account is suspended once the set number of different users have reported them across the whole site.
  • A student whose reports have been marked frivolous the set number of times can no longer affect anything: their new reports are recorded but not counted. They see no difference.

Report reasons

The site's report reasons (for example Offensive language or Overuse of AI) are offered in every course. A teacher can use a course's own list instead, from More > Forum care report reasons in the course: tick Override the site-wide default report reasons for this course and add the course's reasons.

A reason that has been used in reports cannot be deleted, so that those reports stay reviewable. Disable it instead to stop offering it.

AutoReport

A report reason with AutoReport turned on.
Automatic reports in the review queue.

A report reason can report posts automatically when they contain chosen words or phrases, for example buy now for a Spam reason, or As an AI for an Overuse of AI reason. AutoReport is off for every reason until it is turned on.

  1. Edit the reason (site reasons from the Report reasons link in the site settings, or a course's own reasons).
  2. Tick Report posts containing these strings automatically (the AutoReport setting).
  3. In AutoReport strings (shown once the box is ticked), enter one word or phrase per line, up to 200. A reason with AutoReport on needs at least one string.
  4. Save.

The list of reasons shows how many strings each AutoReport reason has. Every 15 minutes, a scheduled task (AutoReport: queue scans of new forum posts, which needs cron) checks the new posts in forums where reporting is turned on:

  • A post is reported when its subject or text contains any of the strings. Matching ignores upper and lower case and extra spaces, and also finds a string inside a longer word, so a short string can match more posts than intended.
  • The post gets one report, under the first matching reason in the list, with AutoReport as the reporter and the strings it found as the comment. The comment is written in the site's language when the post is checked. The report counts towards the thresholds like a report from one more person, so it can hide the post or suspend its author.
  • Posts are checked once the time allowed for editing posts (30 minutes by default) has passed, so their final text is checked. Only enabled reasons are used.
  • Each post is checked only once. Posts edited after their check, posts in forums where reporting is turned on later, and strings added to a reason later are not checked against posts that were already checked.
  • When AutoReport is turned on in a busy site, the posts written so far are worked through gradually: up to 10,000 posts per run.

Site settings

The site settings.

In Site administration > Plugins > Local plugins > Forum care:

  • Enable forum care: the switch for the whole site. When it is off, nobody can report posts, whatever each forum's setting.
  • Moderation thresholds, the defaults for every forum:
    • Reports before auto-hide (default 3)
    • Reports before course suspension (default 5)
    • Reports before site-wide suspension (default 0, off). Teachers cannot change or trigger this one.
    • Frivolous reports before reporting is blocked (default 3)
  • Manage report reasons: the Report reasons link to the site's reasons.

Capabilities

  • local/forumcare:report (Report a forum post): students, non-editing teachers, teachers and managers.
  • local/forumcare:reviewreports (Review forum post reports): non-editing teachers, teachers and managers.
  • local/forumcare:managecoursereasons (Manage course-level forum report reasons): teachers and managers.
  • local/forumcare:managereasons (Manage forum report reasons): managers.
  • local/forumcare:suspendsitewide (Suspend a user site-wide from the forum report review page): managers.

Privacy

The plugin stores who reported which post, why, and how each report was reviewed, and keeps the original text of hidden posts so that it can be restored. It implements the Privacy API in full. Because a report is shared between the reporter, the author and the reviewer, deleting a user's data removes that user's identifying details from the report (and blanks a reporter's comment) rather than deleting the report, which others still need. Such a report stays in the review queue, with the reporter shown as Unknown user. AutoReport stores no extra personal data. Uninstalling the plugin restores the original text of every hidden post. See Data privacy.

See also