Implement user suspension #876

Merged
nex merged 23 commits from nex/user-suspension into main 2025-06-29 15:38:02 +00:00

23 commits

Author SHA1 Message Date
e547145748
style: Remove redundant, unused functions
All checks were successful
Release Docker Image / define-variables (push) Successful in 4s
Checks / Prefligit / prefligit (push) Successful in 28s
Checks / Rust / Format (push) Successful in 47s
Checks / Prefligit / prefligit (pull_request) Successful in 16s
Documentation / Build and Deploy Documentation (pull_request) Successful in 47s
Checks / Rust / Clippy (push) Successful in 4m26s
Checks / Rust / Cargo Test (push) Successful in 4m48s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Successful in 12m56s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Successful in 15m11s
Release Docker Image / merge (push) Successful in 19s
2025-06-29 16:26:04 +01:00
e01181d7e5
feat: Pass sender through admin commands
Some checks failed
Release Docker Image / define-variables (push) Successful in 3s
Checks / Prefligit / prefligit (push) Successful in 29s
Checks / Rust / Format (push) Successful in 57s
Documentation / Build and Deploy Documentation (pull_request) Successful in 53s
Checks / Prefligit / prefligit (pull_request) Successful in 24s
Checks / Rust / Clippy (push) Failing after 3m47s
Checks / Rust / Cargo Test (push) Successful in 5m30s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Successful in 12m1s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Successful in 11m32s
Release Docker Image / merge (push) Successful in 37s
2025-06-29 15:17:27 +01:00
ffe34a91db
feat: Record metadata about user suspensions
Some checks failed
Release Docker Image / merge (push) Blocked by required conditions
Release Docker Image / define-variables (push) Successful in 12s
Checks / Prefligit / prefligit (push) Successful in 31s
Checks / Prefligit / prefligit (pull_request) Successful in 15s
Checks / Rust / Format (push) Successful in 42s
Documentation / Build and Deploy Documentation (pull_request) Successful in 55s
Checks / Rust / Clippy (push) Successful in 3m4s
Checks / Rust / Cargo Test (push) Successful in 5m41s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Has been cancelled
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Has been cancelled
2025-06-29 15:07:04 +01:00
db07480aec
style: Remove unnecessary imports (clippy)
All checks were successful
Release Docker Image / define-variables (push) Successful in 8s
Checks / Prefligit / prefligit (push) Successful in 27s
Checks / Rust / Format (push) Successful in 35s
Checks / Prefligit / prefligit (pull_request) Successful in 14s
Documentation / Build and Deploy Documentation (pull_request) Successful in 47s
Checks / Rust / Clippy (push) Successful in 2m59s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Successful in 10m23s
Checks / Rust / Cargo Test (push) Successful in 3m7s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Successful in 19m46s
Release Docker Image / merge (push) Successful in 19s
2025-06-29 02:30:52 +01:00
a67d9eb76a
fix: Failing open on database errors
Some checks failed
Release Docker Image / merge (push) Blocked by required conditions
Release Docker Image / define-variables (push) Successful in 12s
Checks / Prefligit / prefligit (push) Successful in 29s
Checks / Prefligit / prefligit (pull_request) Successful in 17s
Checks / Rust / Format (push) Successful in 45s
Documentation / Build and Deploy Documentation (pull_request) Successful in 50s
Checks / Rust / Clippy (push) Has been cancelled
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Has been cancelled
Checks / Rust / Cargo Test (push) Has been cancelled
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Has been cancelled
oops
2025-06-29 02:28:04 +01:00
c6ed641dcb
fix: Missing suspensions shouldn't error
All checks were successful
Checks / Prefligit / prefligit (push) Successful in 33s
Release Docker Image / define-variables (push) Successful in 2s
Checks / Rust / Format (push) Successful in 1m1s
Documentation / Build and Deploy Documentation (pull_request) Successful in 48s
Checks / Prefligit / prefligit (pull_request) Successful in 25s
Checks / Rust / Clippy (push) Successful in 5m0s
Checks / Rust / Cargo Test (push) Successful in 5m25s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Successful in 13m33s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Successful in 13m43s
Release Docker Image / merge (push) Successful in 27s
Turns out copying and pasting the function
above verbatim actually introduces more
problems than it solves!
2025-06-29 01:52:02 +01:00
b3428c2e3d
feat: Do not allow suspended users to send typing statuses
All checks were successful
Release Docker Image / define-variables (push) Successful in 2s
Checks / Prefligit / prefligit (push) Successful in 14s
Checks / Rust / Format (push) Successful in 41s
Documentation / Build and Deploy Documentation (pull_request) Successful in 46s
Checks / Prefligit / prefligit (pull_request) Successful in 28s
Checks / Rust / Clippy (push) Successful in 3m59s
Checks / Rust / Cargo Test (push) Successful in 4m25s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Successful in 12m6s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Successful in 12m40s
Release Docker Image / merge (push) Successful in 25s
2025-06-28 22:53:25 +01:00
617defe0d9
feat: Only allow private read receipts when suspended 2025-06-28 22:52:20 +01:00
c4ce2aa291
feat: Prevent suspended users upgrading rooms
Some checks failed
Release Docker Image / merge (push) Blocked by required conditions
Release Docker Image / define-variables (push) Successful in 2s
Checks / Prefligit / prefligit (push) Successful in 29s
Checks / Rust / Format (push) Successful in 39s
Checks / Prefligit / prefligit (pull_request) Successful in 27s
Documentation / Build and Deploy Documentation (pull_request) Successful in 47s
Checks / Rust / Clippy (push) Successful in 3m30s
Checks / Rust / Cargo Test (push) Successful in 4m5s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Has been cancelled
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Has been cancelled
2025-06-28 22:43:35 +01:00
4ebcedd563
feat: Prevent suspended users uploading media 2025-06-28 22:42:49 +01:00
05eeb17a24
feat: Prevent suspended users performing room changes
Prevents kicks, bans, unbans, and alias modification
2025-06-28 22:42:31 +01:00
a6ceaa8259
feat: Forbid suspended users from sending state events
Some checks failed
Release Docker Image / define-variables (push) Successful in 3s
Checks / Prefligit / prefligit (push) Successful in 34s
Checks / Rust / Format (push) Successful in 49s
Checks / Rust / Clippy (push) Successful in 4m15s
Checks / Rust / Cargo Test (push) Successful in 4m45s
Checks / Prefligit / prefligit (pull_request) Successful in 27s
Documentation / Build and Deploy Documentation (pull_request) Successful in 50s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Failing after 13m57s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Failing after 17m29s
Release Docker Image / merge (push) Has been cancelled
2025-06-28 21:30:07 +01:00
13ba3f278f
style: Remove unneeded statements (clippy)
Some checks failed
Release Docker Image / merge (push) Blocked by required conditions
Release Docker Image / define-variables (push) Successful in 3s
Checks / Prefligit / prefligit (push) Successful in 25s
Checks / Rust / Format (push) Successful in 45s
Checks / Rust / Cargo Test (push) Successful in 3m40s
Checks / Rust / Clippy (push) Successful in 4m10s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Has been cancelled
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Has been cancelled
2025-06-28 21:24:20 +01:00
712acc6cb1
feat: Do not allow suspending admin users
Some checks failed
Release Docker Image / merge (push) Blocked by required conditions
Release Docker Image / define-variables (push) Successful in 2s
Checks / Prefligit / prefligit (push) Successful in 40s
Checks / Rust / Format (push) Successful in 55s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Has been cancelled
Checks / Rust / Clippy (push) Has been cancelled
Checks / Rust / Cargo Test (push) Has been cancelled
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Has been cancelled
2025-06-28 21:20:56 +01:00
762f9e59f0
fix: Inappropriate empty check
Some checks failed
Release Docker Image / merge (push) Blocked by required conditions
Release Docker Image / define-variables (push) Successful in 1s
Checks / Prefligit / prefligit (push) Successful in 28s
Checks / Rust / Format (push) Successful in 47s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Has been cancelled
Checks / Rust / Cargo Test (push) Has been cancelled
Checks / Rust / Clippy (push) Has been cancelled
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Has been cancelled
I once again, assumed `true` is actually `false`.
2025-06-28 21:19:37 +01:00
4e720060ed
fix: Create the column appropriately 2025-06-28 21:19:10 +01:00
424b2b039b
feat: Prevent suspended users creating new rooms
Some checks failed
Release Docker Image / define-variables (push) Successful in 2s
Checks / Prefligit / prefligit (push) Successful in 38s
Checks / Rust / Format (push) Successful in 42s
Checks / Rust / Clippy (push) Failing after 3m13s
Checks / Rust / Cargo Test (push) Successful in 4m13s
Release Docker Image / build-image (linux/amd64, release, linux-amd64, base) (push) Successful in 9m59s
Release Docker Image / build-image (linux/arm64, release, linux-arm64, base) (push) Successful in 19m30s
Release Docker Image / merge (push) Successful in 31s
2025-06-28 20:47:02 +01:00
8d26e96d31
feat: Add un/suspend admin commands 2025-06-28 20:46:22 +01:00
2c279a37fd
feat: Prevent suspended users joining/knocking on rooms 2025-06-28 20:41:00 +01:00
fb074959c4
feat: Prevent suspended users changing their profile 2025-06-28 20:39:24 +01:00
31e373153a
feat: Prevent suspended users redacting events 2025-06-28 20:37:09 +01:00
dd511d3e78
feat: Prevent suspended users sending events 2025-06-28 20:35:58 +01:00
4ad69fa8bf
feat: Add suspension helper to user service 2025-06-28 20:32:02 +01:00