From cc5349ee578b6f78983a1d3dd7fa2882dee57160 Mon Sep 17 00:00:00 2001 From: timedout Date: Sun, 24 May 2026 16:43:25 +0100 Subject: [PATCH] fix: Don't de-power creators when downgrading from v12 to earlier versions --- src/api/client/room/upgrade.rs | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/api/client/room/upgrade.rs b/src/api/client/room/upgrade.rs index d6ddc313d..187a04d82 100644 --- a/src/api/client/room/upgrade.rs +++ b/src/api/client/room/upgrade.rs @@ -422,12 +422,24 @@ pub(crate) async fn upgrade_room_route( serde_json::from_str(event_content.get()).map_err(|_| { err!(Request(BadJson("Power levels event content is not valid"))) })?; - if new_version_rules - .authorization - .explicitly_privilege_room_creators - { - for creator in creators { + for creator in creators { + if new_version_rules + .authorization + .explicitly_privilege_room_creators + { power_levels_event_content.users.remove(&creator); + } else { + power_levels_event_content.users.insert( + creator.clone(), + max( + int!(100), + power_levels_event_content + .users + .get(&creator) + .copied() + .unwrap_or_default(), + ), + ); } } event_content = to_raw_value(&power_levels_event_content)