diff --git a/specification/rooms/v1.rst b/specification/rooms/v1.rst index ba25fa21d..6d79323f8 100644 --- a/specification/rooms/v1.rst +++ b/specification/rooms/v1.rst @@ -245,14 +245,23 @@ The rules are as follows: #. For the keys ``users_default``, ``events_default``, ``state_default``, ``ban``, ``redact``, ``kick``, ``invite`` check if they were changed. - For each of the changed keys, as well as - each entry being added, changed or removed under the ``events`` or ``users`` keys: + For each of the changed keys: - i. If the current value is present and higher than the ``sender``'s current power level, + i. If the current value is higher than the ``sender``'s current power level, reject. - #. If the new value is present and higher than the ``sender``'s current power level, + #. If the new value is higher than the ``sender``'s current power level, reject. + + #. For each entry being added, changed or removed in both the ``events`` and ``users`` keys: + + i. If the current value is higher than the ``sender``'s current power level, + reject. + + #. If the new value is higher than the ``sender``'s current power level, + reject. + + #. (Note: current/new value can also denote the inferred value from either ``users_default``, ``events_default`` or ``state_default``) #. For each entry being changed under the ``users`` key, other than the ``sender``'s own entry: