From dde4663efc754f8952963e6dd69a391c9caf657a Mon Sep 17 00:00:00 2001 From: mdecimus Date: Sun, 14 Sep 2025 09:48:20 +0200 Subject: [PATCH] OIDC: Do not set username field if it is the same as the email field --- crates/directory/src/backend/oidc/config.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/directory/src/backend/oidc/config.rs b/crates/directory/src/backend/oidc/config.rs index d73800ba..ce1473b3 100644 --- a/crates/directory/src/backend/oidc/config.rs +++ b/crates/directory/src/backend/oidc/config.rs @@ -55,6 +55,8 @@ impl OpenIdDirectory { } }; + let email_field = config.value_require((&prefix, "fields.email"))?.to_string(); + Some(OpenIdDirectory { config: OpenIdConfig { endpoint: config.value_require((&prefix, "endpoint.url"))?.to_string(), @@ -62,10 +64,11 @@ impl OpenIdDirectory { endpoint_timeout: config .property_or_default::((&prefix, "timeout"), "30s") .unwrap_or_else(|| Duration::from_secs(30)), - email_field: config.value_require((&prefix, "fields.email"))?.to_string(), username_field: config .value((&prefix, "fields.username")) + .filter(|&v| v != email_field) .map(|v| v.to_string()), + email_field, full_name_field: config .value((&prefix, "fields.full-name")) .map(|v| v.to_string()),