foglet · ssh-first terminal bbs · /docs/administration/moderation BETA ← landing GitHub

Docs / Administration / Moderation

Moderation

Warning: narrow moderation surface

Foglet now has a TUI report queue, but it is not a full case-management system. Sanctions, warnings, mutes, bans, public audit browsing, and bulk tools are not complete operator workflows in the current release.

This page describes Foglet's current moderation surface. It covers what exists now and names what should not be promised yet.

Moderation scope

Sysops can perform every guarded action at site scope. Mods can perform the current moderator actions at site or board scope, except site configuration edits.

Normal users do not get moderation powers. Pending, rejected, suspended, and deleted accounts are rejected before role-specific permission checks.

Current actions

The implemented moderation surface centers on message-area maintenance:

Action What it does
Lock thread Prevents new replies while leaving the thread readable.
Unlock thread Allows replies again, subject to board posting policy.
Sticky thread Pins a thread above normal threads in the board list.
Unsticky thread Returns a thread to normal list ordering.
Move thread Moves a thread to another board and updates post board references.
Delete post Soft-deletes a post and may store a reason.
Delete thread Soft-deletes a thread.
Hide oneliner Hides a one-line wall entry while preserving moderation context.
Create report Lets a signed-in caller report a supported user, post, thread, or oneliner target.
Review report queue Lets mods and sysops list open reports visible to their scope.
Resolve or dismiss report Closes an open report with moderator notes.
User status changes Sysops can approve, reject, suspend, and reactivate users.

The data model also includes audit-oriented moderation action and sanction tables. Do not assume every table has a complete public TUI workflow in the current release.

What moderators can see and do

Moderators can see archived boards where the directory exposes moderator visibility. They can act on board-scoped content through guarded context functions. The TUI may hide unavailable actions, but hidden UI is not authorization; the domain action still checks policy.

What sysops can do

Sysops can do all moderator actions and also administer users, categories, boards, site settings, and test email delivery.

Sysop user-status transitions are deliberately narrow:

  • pending -> active
  • pending -> rejected
  • active -> suspended
  • suspended -> active

Sysops cannot use the status screen to change deleted users, reject active users, or unsuspend rejected users.

Audit and retention notes

Foglet preserves history by default:

  • deleted posts and threads are soft-deleted
  • deleted accounts are anonymized, not purged
  • message numbers are not reused
  • oneliners are hidden, not erased, where moderation uses the hide path

Moderation action/report/sanction tables are designed as append-heavy records. Public operator docs should treat warnings, mutes, temporary bans, and permanent bans as not yet supported unless the current release exposes them.

Not currently promised

Do not promise these as available moderation features unless you verify them in the running release:

  • automated sanctions
  • warning/mute/ban workflows
  • public audit-log browsing
  • bulk moderation tools

If callers need one of those, track it as future work rather than documenting it as current behavior.