Moderation
JournalPHP includes a complete set of tools to maintain community safety — from manual moderation to automatic rules.
Reports
Users can report:
- A post — via the post action menu
- A comment — via the comment action menu
- A user / community
When filing a report, users select one of the reasons defined by the administrator.
Managing Reports
| Admin Panel Section | Path |
|---|---|
| Post reports | /admin-panel/post-complaints |
| Comment reports | /admin-panel/comment-complaints |
| User / community reports | /admin-panel/user-complaints |
The report count per post is denormalized in post_complaint_counts for fast filtering.
Moderation Queue
Content can go through review before being published.
Posts
Admin Panel → Unmoderated Posts (/admin-panel/unmoderated-posts) — queue of posts awaiting moderator approval.
Comments
Admin Panel → Unmoderated Comments (/admin-panel/unmoderated-comments) — comment queue.
Moderation queue settings — Admin Panel → Content Moderation (/admin-panel/moderation-settings).
Bans
Temporary & Permanent Bans
A ban blocks user access to the platform for a specified period or indefinitely.
Admin Panel → Bans (/admin-panel/bans):
- Create a ban with reason and duration
- View active and expired bans
- Manually lift a ban
Automatic removal of expired bans:
php artisan users:unbanContent Bans
Prevents a user from publishing posts or leaving comments — without blocking the entire account.
Admin Panel → Content Bans (/admin-panel/content-bans).
Checked by the EnsureNotContentBanned middleware.
Auto-Ban Rules
Automatic banning when report or violation thresholds are exceeded.
Admin Panel → Auto-Ban Rules (/admin-panel/settings/violation-ban-rules):
- Violation type
- Trigger threshold
- Automatically applied penalty (temporary or permanent ban)
AI Moderation
Text Moderation (Deepseek)
When the Deepseek API is configured, new posts and comments are automatically analyzed against platform rules.
Settings — Admin Panel → Content Moderation (/admin-panel/moderation-settings).
Manual run:
php artisan moderation:comments --syncImage Moderation (Yandex Vision)
Uploaded images can be checked by the Yandex Vision API for NSFW content.
Settings — Admin Panel → Image Moderation (/admin-panel/image-moderation-settings):
- Enable/disable
- Yandex Cloud API key
- Folder ID
- Confidence threshold
Ignore Lists
Users manage what they see themselves:
- Ignore users — ignored users' posts and comments are hidden
- Ignore posts — specific posts are hidden from feeds
- Ignore keywords — posts containing specified words are hidden
Moderation Settings
| Section | Path |
|---|---|
| Content moderation | /admin-panel/moderation-settings |
| Image moderation | /admin-panel/image-moderation-settings |
| Auto-ban rules | /admin-panel/settings/violation-ban-rules |
| Content bans | /admin-panel/content-bans |
Moderator Permissions
Each moderation-related admin section can be granted to individual administrators without full platform access.
Admin Panel → Admin Permissions (/admin-panel/admin-permissions).