mirror of
https://github.com/matrix-org/matrix-spec
synced 2025-12-23 17:48:37 +01:00
Clarify the special casing of membership events and redactions in power levels (#2231)
This commit is contained in:
parent
9d063c8d2d
commit
967b54195c
|
|
@ -0,0 +1 @@
|
||||||
|
Clarify the special casing of membership events and redactions in power levels.
|
||||||
|
|
@ -26,9 +26,9 @@ paths:
|
||||||
This cannot be undone.
|
This cannot be undone.
|
||||||
|
|
||||||
Any user with a power level greater than or equal to the `m.room.redaction`
|
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
|
event power level may send redactions for their own events in the room. If
|
||||||
level is also greater than or equal to the `redact` power level of the room,
|
the user's power level is also greater than or equal to the `redact` power
|
||||||
the user may redact events sent by other users.
|
level of the room, the user may redact events sent by other users.
|
||||||
|
|
||||||
Server administrators may redact events sent by users on their server.
|
Server administrators may redact events sent by users on their server.
|
||||||
operationId: redactEvent
|
operationId: redactEvent
|
||||||
|
|
|
||||||
|
|
@ -13,24 +13,34 @@ description: |-
|
||||||
0. If the room contains no `m.room.power_levels` event, the room's creator has
|
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.
|
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`,
|
Except for membership events and redactions, the level required to
|
||||||
`state_default` and `events_default`. If an event type is specified in
|
send a certain event is governed purely by `events`, `state_default`
|
||||||
`events`, then the user must have at least the level specified in order to
|
and `events_default`. If an event type is specified in `events`, then
|
||||||
send that event. If the event type is not supplied, it defaults to
|
the user must have at least the level specified in order to send that
|
||||||
`events_default` for Message Events and `state_default` for State
|
event. If the event type is not supplied, it defaults to `events_default`
|
||||||
Events.
|
for message events and `state_default` for state events.
|
||||||
|
|
||||||
If there is no `state_default` in the `m.room.power_levels` event, or
|
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.
|
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,
|
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.
|
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
|
Membership events are not subject to `events`, `events_default`, or
|
||||||
room, ban a user from the room, or redact an event sent by another user, is
|
`state_default`. Instead, the power level required to invite a user
|
||||||
defined by `invite`, `kick`, `ban`, and `redact`, respectively. The levels
|
to the room, kick a user from the room, or ban a user from the room
|
||||||
for `kick`, `ban` and `redact` default to 50 if they are not specified in the
|
is defined by `invite`, `kick`, and `ban`, respectively. The levels
|
||||||
`m.room.power_levels` event, or if the room contains no `m.room.power_levels`
|
for `kick` and `ban` default to 50 if they are not specified in the
|
||||||
event. `invite` defaults to 0 in either case.
|
`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:**
|
**Note:**
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue