Skip to content

Moderation ​

Moderation is checking posts and comments and restricting violators.

Overview ​

JournalPHP uses post-moderation: posts and comments are published immediately and checked after publication — manually in the queue or automatically by AI moderation. Users report violations.

A violator can be banned on the whole platform or restricted from publishing posts and comments. A restriction is also issued automatically when a user accumulates blocked posts and comments. Bans inside a topic are issued by its team — see Topics.

Moderation sections are in the Admin Panel → Moderation group, AI moderation settings are in the Admin Panel → AI group.

Review queue ​

The queue contains published posts, except editorial ones, and comments that have not been checked yet:

  • Posts: Admin Panel → Moderation → Queue → Posts
  • Comments: Admin Panel → Moderation → Queue → Comments

An entry in the queue is approved or blocked with a reason. A blocked post is unpublished, and the author receives a notification with the reason. A blocked comment is shown under the post as deleted.

Posts and comments checked by AI moderation leave the queue automatically.

A post can also be blocked and unblocked in Admin Panel → Content → Posts. Blocking differs from unpublishing: a blocked post does not enter feeds even if the author publishes it again. The page of a blocked post is visible only to its author, platform moderators and the super administrator.

AI moderation ​

AI moderation checks text with a language model and images with Yandex Vision:

  • Posts: checked right after publication; editorial posts and posts of the super administrator and platform editors are not checked
  • Comments: checked within a minute after publication

On a violation, the post is unpublished and blocked, and the comment is blocked; the reason is saved, and the post author receives a notification with it. If the model returns no answer or the answer cannot be parsed, the entry is considered approved.

If both text and image checking are turned off, posts and comments are not checked and stay in the queue.

Text ​

Text checking is configured in Admin Panel → AI → Text moderation separately for posts and comments:

  • Checking: on or off
  • Prompt: the rules the model uses to evaluate text

Text checking requires a language model provider.

Images ​

Checking images from posts and comments is configured in Admin Panel → AI → Image moderation and works through Yandex Vision:

  • Provider: Yandex Cloud Vision or "Disabled"
  • Token type: a Yandex Cloud IAM token or OAuth token
  • Token and Folder ID: access to the Yandex Cloud folder
  • Thresholds: model confidence from 0 to 1 at which an image is rejected; set for the categories adult and adult_content (0.9 by default), gruesome, violence, watermarks, text (0.5 by default)

Reports ​

A report can be filed on a post, comment, user or topic, including without signing in. The reason is chosen from a list: spam, insult, breaking the law, pornographic content, violence, copyright, misleading, other.

Reports are reviewed in the Admin Panel → Moderation → Reports group: the "Posts", "Comments" and "Users & topics" sections. A reviewed report is marked as viewed; after that, new reports on the same entry are not accepted.

Platform bans ​

Bans are issued and lifted in Admin Panel → Moderation → Bans → Users:

  • Reason: required
  • Term: from 1 to 3650 days or permanent
  • By IP: the ban also covers the user's last IP address

A ban closes access to the platform until the term ends: the banned user sees a page with a ban message. A ban by IP closes access to everyone who visits from that address. A repeated ban replaces the previous one.

Publishing restrictions ​

A restriction limits publishing without closing access to the platform. It is issued in Admin Panel → Moderation → Bans → Publishing restrictions for posts, comments or both, with a reason, for 1 to 3650 days or permanently.

While a restriction is active, the user cannot save posts or leave comments.

Automatic restrictions ​

The rules in Admin Panel → Settings → Security → Ban rules issue publishing restrictions automatically. A violation is a blocked post or comment of the user. Of the matching rules, the strictest one applies — the one with the longest restriction. A rule does not fire if the user already has an active restriction on the same target or on everything that is not shorter than the one the rule would issue.

A rule consists of:

  • Number of violations: how many blocked entries trigger the rule
  • Period: day, week or month
  • Restriction target: posts, comments or both; for posts, blocked posts are counted, for comments — comments, for both — all of them
  • Duration: hours, days or permanent

These rules are created on installation:

ViolationsPeriodRestriction on both
3day1 hour
5week1 day
10month7 days
15monthpermanent

Moderator rights ​

The global moderator role grants rights over posts and comments directly on the platform — see Roles. Access to moderation sections of the admin panel is granted to administrators separately — see Admin Panel.

Released under the MIT License.