-
-
Notifications
You must be signed in to change notification settings - Fork 125
Description
Spec: https://spec.matrix.org/v1.16/rooms/v12/
MSC: MSC4289
Problem description
v12 rooms have the concept of a room "creator", and "additional creators". These users have infinite power level in the room. When upgrading a prior room version to v12, the room's creator (and any specified additional creators) are granted this power. The MSC considers this path in several places.
However the MSC did not consider downgrading a v12 room to a prior version that does not support giving creators infinite power level. What power levels should a homeserver set a v12 room's creators to when "upgrading" a v12 room to v11?
This question came up on the Synapse issue tracker. After some discussion, the conclusion was that the homeserver should try to preserve the power level structure as best it can given the auth rules of prior room versions. That is, to set the creator and additional creators' power level to the maximum number allowed by the JSON rules of the room version. And to demote any other user that may already be at that power level by 1. Thus, creators remain the most powerful users in the room following the upgrade, and the calculation is simple to implement.
As it stands, if homeservers take no special care during the process, creators can end up with power level 0 after the upgrade as the creators aren't mentioned in the users dict of power levels events. This results in an effectively broken room upon upgrading.
I propose the above be added to MSC4289 as a post-accepted clarification, rather than initiating a new MSC. Thoughts welcome.