From 5787f389063a13a06680711ec6c102494c2282ca Mon Sep 17 00:00:00 2001 From: ember33 Date: Thu, 19 Mar 2026 19:49:04 +0100 Subject: [PATCH] fix(spaces): don't reset manual PL overrides in sync_power_levels Remove the else branch that stripped power levels from users not managed by any space role. This was destroying manually-set PLs for users who happened to be in space-managed rooms but had no space roles. Space roles should only SET power levels for managed users, never remove entries for non-managed users. --- src/service/rooms/roles/mod.rs | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/src/service/rooms/roles/mod.rs b/src/service/rooms/roles/mod.rs index e8501ea0..b634d1bc 100644 --- a/src/service/rooms/roles/mod.rs +++ b/src/service/rooms/roles/mod.rs @@ -579,23 +579,6 @@ pub async fn sync_power_levels(&self, space_id: &RoomId, room_id: &RoomId) -> Re .insert(user_id.clone(), space_pl_int); changed = true; } - } else { - let parents = self.get_parent_spaces(room_id).await; - let mut managed_by_other = false; - for parent in &parents { - if self.get_user_power_level(parent, user_id).await.is_some() { - managed_by_other = true; - break; - } - } - if !managed_by_other { - if let Some(current) = power_levels_content.users.get(user_id) { - if *current != power_levels_content.users_default { - power_levels_content.users.remove(user_id); - changed = true; - } - } - } } }