Skip to content

Moderator tools: slow mode for one user - #362

Merged
alltechdev merged 6 commits into
mainfrom
mod-user-slow-mode
Oct 29, 2026
Merged

alltechdev merged 6 commits into
mainfrom
mod-user-slow-mode

Conversation

@alltechdev

@alltechdev alltechdev commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Affected module(s)

  • Moderator tools
  • Mini-mod
  • Dislike
  • Disteleplus
  • REQ-PM
  • Mod elections
  • Dumbcourse
  • Smart search
  • Pop-ups
  • Another SMTP
  • Translator tweaks
  • JTech theme
  • Shared (plugin.rb, settings, locales, docs, lint/CI)

Test plan

Checklist

  • pnpm lint is clean
  • bundle exec rubocop is clean
  • New / changed settings have entries in config/locales/server.en.yml or client.en.yml
  • New / changed behavior has a spec (a bug fix has one that fails without it)
  • Follows the repository rules: no access past core, visibility checked, nothing core already does
  • No Ruby file references a non-existent setting name

Staff can now limit one user to a reply or new topic every so often, from
the user's admin page. Core's slow mode is per topic, and its post rate
limits apply to the whole site or a trust level, so neither can do this.

- Interval: 1 minute to a week. Duration: a day, a week, a month, until a
  date, or until lifted. A reason is required.
- The user gets a system message when it's set and when it's lifted. The
  staff action log records both.
- Their composer shows how often they can post and how long until the
  next post.
- A NewPostManager handler turns away a post that comes too soon, with
  how long to wait. That covers the full site, Dumbcourse and the API.
- A pending queued post holds the user back until it's reviewed, so the
  review queue can't be used to post several at once.
- Private messages and edits aren't limited. Staff can't be put in slow
  mode.
- Settings: mod_user_slow_mode_enabled, plus mod_user_slow_mode_moderators
  to let moderators use it as well as admins.
Core's locale lint bans 'private message' in favour of 'personal message'.
The setting description also said the user gets the reason when slow mode
is lifted; only the message that sets it carries one.
can_set_user_slow_mode? sat below the Guardian extension's private
section, so every call to it raised.
Core's redesigned composer pads each row rather than the reply area, so
the note sat flush against the composer's edge there. Also scroll the
admin-page screenshot to the slow mode row.
The browser never reads them; the serializers say what it needs.
@alltechdev
alltechdev merged commit 694b4ef into main Oct 29, 2026
10 checks passed
@alltechdev
alltechdev deleted the mod-user-slow-mode branch October 29, 2026 16:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant