From 6e62f306ab25864db8ae220b79bd9dce46f2cf5e Mon Sep 17 00:00:00 2001 From: mdecimus Date: Sun, 13 Jul 2025 12:32:05 +0200 Subject: [PATCH] LDAP local placeholder should return username when its not an email address (closes #1784) --- crates/directory/src/backend/ldap/mod.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/crates/directory/src/backend/ldap/mod.rs b/crates/directory/src/backend/ldap/mod.rs index 6a7dc6c8..107922ed 100644 --- a/crates/directory/src/backend/ldap/mod.rs +++ b/crates/directory/src/backend/ldap/mod.rs @@ -58,9 +58,12 @@ impl LdapFilter { LdapFilterItem::Static(s) => result.push_str(s), LdapFilterItem::Full => result.push_str(ldap_escape(value).as_ref()), LdapFilterItem::LocalPart => { - if let Some((value, _)) = value.rsplit_once('@') { - result.push_str(value); - } + result.push_str( + value + .rsplit_once('@') + .map(|(local, _)| local) + .unwrap_or(value), + ); } LdapFilterItem::DomainPart => { if let Some((_, domain)) = value.rsplit_once('@') {