5cbd530a87
- parseBaseDns() splits the newline-separated baseDn field into a list - syncUsersForTenant no-op guard re-keyed on empty parsed base-DN list (was empty groupFilterDns) — the sole condition that skips search + the deactivation loop, preventing mass-deactivation on an unconfigured config - collectSearchEntries/listGroups/searchUsers loop every base DN and merge/dedupe results by entry dn - empty groupFilterDns is no longer a no-op: it now performs a normal multi-base search with no memberOf restriction - groupFilterDns ou= entries stay additional search bases; group DNs become an optional memberOf constraint applied to every base search - spec: replaced empty-groupFilterDns no-op test with empty-base-DN no-op test, added multi-base merge/dedup test Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>