Concordia implements a comprehensive moderation system to maintain community standards and manage user-generated content across the platform.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Ishaq74/concordia/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The moderation system provides:- Moderation queue: Centralized view of flagged content
- Status-based workflows: Content goes through pending → published → moderated states
- Role-based access: Moderators and admins can take moderation actions
- Audit logging: All moderation actions are logged
- User notifications: Authors are notified when content is moderated
- Self-moderation prevention: Users cannot moderate their own content
Moderation Permissions
Two permissions control moderation capabilities:- Moderators: Both
moderation.queueandmoderation.action - Administrators: Both permissions plus additional content deletion rights
- Regular users: No moderation permissions
Content Status Model
Most user-generated content follows a status-based lifecycle:Status Values
Content Types with Status
| Content Type | Statuses | Default |
|---|---|---|
| Reviews | published, moderated, deleted | published |
| Comments | published, moderated, deleted | published |
| Forum Posts | published, moderated, deleted | published |
| Forum Threads | published, closed, moderated, deleted | published |
| Classifieds | pending_review, active, sold, expired, archived, rejected | pending_review |
| Places | pending_review, published, archived, rejected | pending_review |
| Articles | draft, pending_review, published, archived, rejected | draft |
Moderation API
The moderation API is located at/api/admin/moderate.ts.
Endpoint
Request Body
Supported Content Types
blogComments- Blog post comments
reviews- Place reviewsforumPosts- Forum postsclassifieds- Classified adscomments- General comments
Authentication & Authorization
- User must be authenticated
- User must have
moderation.actionpermission - User cannot moderate their own content
- Content must exist and not already be moderated
Validation
- All fields are required
postTypemust be a valid entity typereasonmust be at least 5 characters
Self-Moderation Prevention
Moderation Action
- Update content status to
"moderated" - Send notification to content author with reason
- Return success response
Moderation Workflow
Moderation decision
Moderator takes action:
- Approve: Keep published (remove from queue)
- Hide: Set status to
"moderated" - Delete: Soft-delete the content
Notification System
When content is moderated, the author receives a notification:- Clear title indicating moderation
- Full reason provided by moderator
- Link to the moderated content (via
targetTypeandtargetId) - Type marker for filtering/display
Moderator Permissions
Moderators have extensive permissions to manage community content:Content Deletion Rights
Moderators can delete:- Reviews (any)
- Comments (any)
- Forum posts (any)
- Classifieds (any)
- Events (any)
- Groups (any)
- Galleries (any)
- Products (any)
- Pin threads (highlight important discussions)
- Lock threads (prevent further replies)
Admin vs Moderator
| Capability | Moderator | Admin |
|---|---|---|
| View moderation queue | ✅ | ✅ |
| Moderate content | ✅ | ✅ |
| Delete user content | ✅ | ✅ |
| Pin/lock forum threads | ✅ | ✅ |
| Approve places | ❌ | ✅ |
| Approve articles | ❌ | ✅ |
| Manage users | ❌ | ✅ |
| Assign roles | ❌ | ✅ |
| Access audit logs | ❌ | ✅ |
| Manage taxonomy | ❌ | ✅ |
| Publish transparency reports | ❌ | ✅ |
Error Codes
The moderation API returns specific error codes:| Code | Status | Description |
|---|---|---|
AUTH_UNAUTHORIZED | 401 | User not authenticated |
AUTH_FORBIDDEN | 403 | User lacks moderation permission |
VAL_REQUIRED_FIELD | 400 | Missing required field |
VAL_INVALID_ENUM | 400 | Invalid postType value |
VAL_TOO_SHORT | 400 | Reason too short (< 5 chars) |
BIZ_NOT_FOUND | 404 | Content not found |
BIZ_ALREADY_MODERATED | 400 | Content already moderated |
BIZ_SELF_MODERATION | 403 | Cannot moderate own content |
Usage Example
Client-Side Request
Success Response
Error Response
Audit Logging
All moderation actions should be logged to the audit log:- Who performed the moderation (userId)
- What was moderated (targetId, postType)
- Why it was moderated (reason)
- When it occurred (createdAt)
Future Enhancements
Planned moderation features:Automated Moderation
Automated Moderation
- AI-based content filtering
- Automatic flagging of suspicious content
- Spam detection
- Profanity filters
Advanced Queue Management
Advanced Queue Management
- Priority levels for moderation queue
- Assignment of items to specific moderators
- SLA tracking for moderation response times
- Bulk moderation actions
Appeals Process
Appeals Process
- Users can appeal moderation decisions
- Appeal review by senior moderators
- Audit trail of appeals and outcomes
Moderation Templates
Moderation Templates
- Pre-defined moderation reasons
- Quick action buttons
- Custom response templates
Reporting System
Reporting System
- User-initiated content reports
- Report categorization
- Report status tracking
- Reporter notifications
Best Practices
Always provide clear reasons
When moderating content, provide specific, actionable reasons so authors understand what violated community standards.
Be consistent
Apply moderation standards consistently across all users and content types to maintain fairness.
Review context
Before moderating, review the full context of the content, including surrounding discussion and user history.
Document decisions
Use the audit log to track patterns and ensure moderation actions are defensible.
Respond promptly
Process moderation queue items quickly to maintain community trust and content quality.