fix: Case insensitive email match (#6760)

Fixes: https://linear.app/chatwoot/issue/CW-1354/email-id-case-sensitive

Co-authored-by: Sojan <sojan@pepalo.com>
This commit is contained in:
Tejaswini Chile
2023-03-28 15:23:41 +05:30
committed by GitHub
parent fdb067a352
commit 54a809ea54
3 changed files with 16 additions and 0 deletions

View File

@@ -106,6 +106,10 @@ class User < ApplicationRecord
scope :order_by_full_name, -> { order('lower(name) ASC') }
before_validation do
self.email = email.try(:downcase)
end
def send_devise_notification(notification, *args)
devise_mailer.with(account: Current.account).send(notification, self, *args).deliver_later
end

View File

@@ -115,6 +115,11 @@ RSpec.describe 'Platform Users API', type: :request do
)
)
expect(platform_app.platform_app_permissibles.first.permissible_id).to eq data['id']
post '/platform/api/v1/users/', params: { name: 'test', email: 'TesT@test.com', password: 'Password1!' },
headers: { api_access_token: platform_app.access_token.token }, as: :json
data = JSON.parse(response.body)
expect(data['message']).to eq('Email has already been taken')
end
it 'fetch existing user and creates permissible for the user' do

View File

@@ -89,4 +89,11 @@ RSpec.describe User do
expect(user.will_save_change_to_email?).to be true
end
end
context 'when the supplied email is uppercase' do
it 'downcases the email on save' do
new_user = create(:user, email: 'Test123@test.com')
expect(new_user.email).to eq('test123@test.com')
end
end
end