From fb6f0c65a28b26371df7a7c703728b27d0cf475c Mon Sep 17 00:00:00 2001 From: Maurus Decimus <11444311+mdecimus@users.noreply.github.com> Date: Sun, 5 Jul 2026 10:12:02 +0200 Subject: [PATCH] Fix Directory: Removing a user from all groups does not sync the changes correctly --- CHANGELOG.md | 1 + crates/common/src/cache/directory.rs | 11 +++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e6369c6..db8b9136 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ If you are upgrading from v0.16.x, replace the binary (or run `docker pull`). If - Registry: Changing the type of an existing account from `user` to `group` panics. - Masked emails: Return `UnknownRecipient` only for disabled or expired masked emails. - IDN: `sanitize_email` rejects valid Punycode domains. +- Directory: Removing a user from all groups does not sync the changes correctly. ## [0.16.11] - 2026-06-25 diff --git a/crates/common/src/cache/directory.rs b/crates/common/src/cache/directory.rs index c2e88cf7..94766294 100644 --- a/crates/common/src/cache/directory.rs +++ b/crates/common/src/cache/directory.rs @@ -103,12 +103,11 @@ impl Server { .into(), ); } - if !member_group_ids.is_empty() - && ((updated_account.member_group_ids.len() != member_group_ids.len()) - || !updated_account - .member_group_ids - .iter() - .all(|id| member_group_ids.contains(id))) + if updated_account.member_group_ids.len() != member_group_ids.len() + || !updated_account + .member_group_ids + .iter() + .all(|id| member_group_ids.contains(id)) { updated_account.member_group_ids = member_group_ids.into(); has_changes = true;