Shared edits for Discourse
Find a file
Sam 4e51a4e231
Some checks failed
Discourse Plugin / ci (push) Has been cancelled
FEATURE: allow shared edits to be enabled on any group (#163)
Allow sites to choose which groups can enable or disable shared edits instead of hardcoding staff and TL4 users. Expose the permission on the current user serializer so the admin menu can hide toggle actions for unauthorized users.

Add rate limits to privileged reset and recover endpoints, and update specs, acceptance tests, docs, and settings copy for the new permission model.

* Update config/settings.yml

Co-authored-by: Martin Brennan <martin@discourse.org>

* fix spec

---------

Co-authored-by: Martin Brennan <martin@discourse.org>
2026-06-25 16:28:07 +10:00
.github/workflows DEV: Add the d-compat branch workflow (#153) 2026-03-11 22:45:18 +00:00
app FEATURE: allow shared edits to be enabled on any group (#163) 2026-06-25 16:28:07 +10:00
assets FEATURE: allow shared edits to be enabled on any group (#163) 2026-06-25 16:28:07 +10:00
config FEATURE: allow shared edits to be enabled on any group (#163) 2026-06-25 16:28:07 +10:00
db/migrate FEATURE: yjs-based collaborative editing with state recovery and cursor sync 2026-02-13 11:34:52 +11:00
lib FEATURE: allow shared edits to be enabled on any group (#163) 2026-06-25 16:28:07 +10:00
patches FEATURE: yjs-based collaborative editing with state recovery and cursor sync 2026-02-13 11:34:52 +11:00
public/javascripts FEATURE: yjs-based collaborative editing with state recovery and cursor sync 2026-02-13 11:34:52 +11:00
spec FEATURE: allow shared edits to be enabled on any group (#163) 2026-06-25 16:28:07 +10:00
support DEV: Update linting (#154) 2026-03-13 12:46:27 +00:00
test/javascripts FEATURE: allow shared edits to be enabled on any group (#163) 2026-06-25 16:28:07 +10:00
.discourse-compatibility DEV: Pin version for Discourse < 2026.2.0-latest (#146) 2026-02-11 22:30:48 +00:00
.eslintignore DEV: Update linting setup and fix issues (#45) 2022-06-17 15:22:18 +02:00
.gitignore DEV: Update linting and add types (#144) 2026-01-29 14:36:48 +00:00
.npmrc DEV: Switch to use pnpm (#102) 2024-10-14 13:54:53 +02:00
.prettierignore DEV: Update dependencies (#88) 2024-03-11 11:05:44 +01:00
.prettierrc.cjs DEV: Update linting (#85) 2024-01-16 17:52:44 +01:00
.rubocop.yml DEV: Introduce syntax_tree for ruby formatting (#59) 2022-12-29 13:34:33 +01:00
.streerc DEV: Introduce syntax_tree for ruby formatting (#59) 2022-12-29 13:34:33 +01:00
.template-lintrc.cjs DEV: Update linting (#85) 2024-01-16 17:52:44 +01:00
AGENTS.md FEATURE: allow shared edits to be enabled on any group (#163) 2026-06-25 16:28:07 +10:00
CLAUDE.md FEATURE: yjs-based collaborative editing with state recovery and cursor sync 2026-02-13 11:34:52 +11:00
eslint.config.mjs DEV: Update eslint config (#115) 2024-11-19 11:30:42 +01:00
Gemfile DEV: Introduce syntax_tree for ruby formatting (#59) 2022-12-29 13:34:33 +01:00
Gemfile.lock DEV: Update linting 2026-03-26 13:41:25 +00:00
GEMINI.md FEATURE: yjs-based collaborative editing with state recovery and cursor sync 2026-02-13 11:34:52 +11:00
LICENSE DEV: Update linting setup and fix issues (#45) 2022-06-17 15:22:18 +02:00
package.json DEV: Update linting 2026-03-26 13:41:25 +00:00
plugin.rb FEATURE: allow shared edits to be enabled on any group (#163) 2026-06-25 16:28:07 +10:00
pnpm-lock.yaml DEV: Update linting 2026-03-26 13:41:25 +00:00
readme.md FEATURE: allow shared edits to be enabled on any group (#163) 2026-06-25 16:28:07 +10:00
stylelint.config.mjs DEV: Update linting (#128) 2025-03-17 11:03:42 +00:00
translator.yml DEV: Add Crowdin support (#26) 2021-10-19 00:15:42 +02:00
tsconfig.json DEV: Update linting and add types (#144) 2026-01-29 14:36:48 +00:00
yjs-entry.js FEATURE: yjs-based collaborative editing with state recovery and cursor sync 2026-02-13 11:34:52 +11:00
yjs-prosemirror-entry.js FEATURE: yjs-based collaborative editing with state recovery and cursor sync 2026-02-13 11:34:52 +11:00

Discourse Shared Edits Plugin

Discourse shared edits allows multiple users to collaboratively edit posts in real time. This feature is disabled by default and can be enabled explicitly on posts by users in the shared_edits_toggle_allowed_groups site setting, which defaults to staff and trust level 4.

For more information, please see: https://meta.discourse.org/t/discourse-shared-edits/167583