From 68a9b0ca84fbf20b4291006a193966ed89a9a653 Mon Sep 17 00:00:00 2001 From: "Paul, Nathan" Date: Thu, 21 May 2020 15:30:01 -0500 Subject: [PATCH] Convert email address obtained from LDAP to lowercase before comparing it for merging with an existing account. Fix a log message which discarded the second part of the message. --- server/loginHandler.js | 2 +- server/sync.js | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/server/loginHandler.js b/server/loginHandler.js index a8f013d..81d22f8 100644 --- a/server/loginHandler.js +++ b/server/loginHandler.js @@ -134,7 +134,7 @@ Accounts.registerLoginHandler('ldap', function(loginRequest) { if (!user && email && LDAP.settings_get('LDAP_EMAIL_MATCH_ENABLE') === true) { - log_info('No user exists with username', username, '- attempting to find by e-mail address instead'); + log_info(`No user exists with username ${username} - attempting to find by e-mail address instead`); if(LDAP.settings_get('LDAP_EMAIL_MATCH_VERIFIED') === true) { userQuery = { diff --git a/server/sync.js b/server/sync.js index 141ef34..810339e 100644 --- a/server/sync.js +++ b/server/sync.js @@ -74,13 +74,16 @@ export function getLdapUsername(ldapUser) { export function getLdapEmail(ldapUser) { const emailField = LDAP.settings_get('LDAP_EMAIL_FIELD'); + let email; if (emailField.indexOf('#{') > -1) { - return emailField.replace(/#{(.+?)}/g, function(match, field) { + email = emailField.replace(/#{(.+?)}/g, function (match, field) { return ldapUser.getLDAPValue(field); }); + } else { + email = ldapUser.getLDAPValue(emailField); } - return ldapUser.getLDAPValue(emailField); + return email.toLowerCase(); } export function getLdapFullname(ldapUser) {