Fix local account search on LDAP login being case-sensitive (#30113)

Co-authored-by: Claire <claire.github-309c@sitedethib.com>
This commit is contained in:
Râu Cao 2024-05-03 11:22:48 +02:00 committed by Claire
parent a2c7f7f690
commit d1854798c9

View file

@ -22,7 +22,7 @@ module LdapAuthenticable
safe_username = safe_username.gsub(keys, replacement) safe_username = safe_username.gsub(keys, replacement)
end end
resource = joins(:account).find_by(accounts: { username: safe_username }) resource = joins(:account).merge(Account.where(Account.arel_table[:username].lower.eq safe_username.downcase)).take
if resource.blank? if resource.blank?
resource = new(email: attributes[Devise.ldap_mail.to_sym].first, agreement: true, account_attributes: { username: safe_username }, admin: false, external: true, confirmed_at: Time.now.utc) resource = new(email: attributes[Devise.ldap_mail.to_sym].first, agreement: true, account_attributes: { username: safe_username }, admin: false, external: true, confirmed_at: Time.now.utc)