Compare commits

...

3 commits

Author SHA1 Message Date
Johannes Marbach 3e1b40adce
Merge f7cebd9ba1 into 74a0d5f289 2025-10-24 14:05:05 +02:00
Kévin Commaille 74a0d5f289
Silence redocly-cli rule checking examples (#2238)
Some checks failed
Spec / 🔎 Validate OpenAPI specifications (push) Has been cancelled
Spec / 🔎 Check Event schema examples (push) Has been cancelled
Spec / 🔎 Check OpenAPI definitions examples (push) Has been cancelled
Spec / 🔎 Check JSON Schemas inline examples (push) Has been cancelled
Spec / ⚙️ Calculate baseURL for later jobs (push) Has been cancelled
Spec / 📢 Run towncrier for changelog (push) Has been cancelled
Spell Check / Spell Check with Typos (push) Has been cancelled
Spec / 🐍 Build OpenAPI definitions (push) Has been cancelled
Spec / 📖 Build the spec (push) Has been cancelled
Spec / 🔎 Validate generated HTML (push) Has been cancelled
Spec / 📖 Build the historical backup spec (push) Has been cancelled
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2025-10-24 10:19:19 +00:00
Johannes Marbach f7cebd9ba1 Clarify the special casing of membership events and redactions in power levels
Fixes: #1020
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-10-15 10:07:59 +02:00
5 changed files with 31 additions and 16 deletions

View file

@ -0,0 +1 @@
Clarify the special casing of membership events and redactions in power levels.

View file

@ -0,0 +1 @@
Silence failing redocly-cli rule.

View file

@ -26,9 +26,9 @@ paths:
This cannot be undone.
Any user with a power level greater than or equal to the `m.room.redaction`
event power level may send redaction events in the room. If the user's power
level is also greater than or equal to the `redact` power level of the room,
the user may redact events sent by other users.
event power level may send redactions for their own events in the room. If
the user's power level is also greater than or equal to the `redact` power
level of the room, the user may redact events sent by other users.
Server administrators may redact events sent by users on their server.
operationId: redactEvent

View file

@ -13,24 +13,34 @@ description: |-
0. If the room contains no `m.room.power_levels` event, the room's creator has
a power level of 100, and all other users have a power level of 0.
The level required to send a certain event is governed by `events`,
`state_default` and `events_default`. If an event type is specified in
`events`, then the user must have at least the level specified in order to
send that event. If the event type is not supplied, it defaults to
`events_default` for Message Events and `state_default` for State
Events.
Except for membership events and redactions, the level required to
send a certain event is governed purely by `events`, `state_default`
and `events_default`. If an event type is specified in `events`, then
the user must have at least the level specified in order to send that
event. If the event type is not supplied, it defaults to `events_default`
for message events and `state_default` for state events.
If there is no `state_default` in the `m.room.power_levels` event, or
there is no `m.room.power_levels` event, the `state_default` is 50.
If there is no `events_default` in the `m.room.power_levels` event,
or there is no `m.room.power_levels` event, the `events_default` is 0.
The power level required to invite a user to the room, kick a user from the
room, ban a user from the room, or redact an event sent by another user, is
defined by `invite`, `kick`, `ban`, and `redact`, respectively. The levels
for `kick`, `ban` and `redact` default to 50 if they are not specified in the
`m.room.power_levels` event, or if the room contains no `m.room.power_levels`
event. `invite` defaults to 0 in either case.
Membership events are not subject to `events`, `events_default`, or
`state_default`. Instead, the power level required to invite a user
to the room, kick a user from the room, or ban a user from the room
is defined by `invite`, `kick`, and `ban`, respectively. The levels
for `kick` and `ban` default to 50 if they are not specified in the
`m.room.power_levels` event, or if the room contains no
`m.room.power_levels` event. `invite` defaults to 0 in either case.
Other membership values are handled during event authorization. See
the authorization rules in [room versions](/rooms) for further details.
For redactions of a user's own events, the required power level is
determined by the `m.room.redaction` event power level, as per `events`
and `events_default`. The power level required to redact an event sent
by another user is _additionally_ governed by `redact`. The level for
`redact` defaults to 50 if it is not specified in the `m.room.power_levels`
event, or if the room contains no `m.room.power_levels` event.
**Note:**

View file

@ -8,4 +8,7 @@ rules:
no-invalid-media-type-examples: off
no-path-trailing-slash: off
operation-2xx-response: off
spec-strict-refs: error
spec-strict-refs: error
# $ref in examples are not spec-compliant, yet we find them useful. Disable this rule
# and instead check example schema using `check-event-schema-examples.py`
no-invalid-schema-examples: off