Compare commits

...

3 commits

Author SHA1 Message Date
Johannes Marbach 7c7089f09b
Merge f7cebd9ba1 into 9d063c8d2d 2025-10-29 08:13:16 +01:00
Johannes Marbach 9d063c8d2d
Add m.login.terms to enumeration of authentication types (#2233)
Some checks are pending
Spec / 🔎 Validate OpenAPI specifications (push) Waiting to run
Spec / 🔎 Check Event schema examples (push) Waiting to run
Spec / 🔎 Check OpenAPI definitions examples (push) Waiting to run
Spec / 🔎 Check JSON Schemas inline examples (push) Waiting to run
Spec / ⚙️ Calculate baseURL for later jobs (push) Waiting to run
Spec / 🐍 Build OpenAPI definitions (push) Blocked by required conditions
Spec / 📢 Run towncrier for changelog (push) Waiting to run
Spec / 📖 Build the spec (push) Blocked by required conditions
Spec / 🔎 Validate generated HTML (push) Blocked by required conditions
Spec / 📖 Build the historical backup spec (push) Blocked by required conditions
Spell Check / Spell Check with Typos (push) Waiting to run
Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
2025-10-28 19:05:59 -04: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 28 additions and 15 deletions

View file

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

View file

@ -0,0 +1 @@
Add `m.login.terms` to enumeration of authentication types.

View file

@ -906,6 +906,7 @@ This specification defines the following auth types:
- `m.login.msisdn`
- `m.login.dummy`
- `m.login.registration_token`
- {{% added-in v="1.11" %}} `m.login.terms`
###### Password-based

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:**