mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-02 03:57:52 +00:00
fix: Avoid duplicate invitation emails when adding an agent (#9131)
Co-authored-by: Sojan <sojan@pepalo.com> Co-authored-by: Shivam Mishra <scm.mymail@gmail.com> Co-authored-by: Pranav <pranav@chatwoot.com>
This commit is contained in:
@@ -16,7 +16,6 @@ class AgentBuilder
|
|||||||
def perform
|
def perform
|
||||||
ActiveRecord::Base.transaction do
|
ActiveRecord::Base.transaction do
|
||||||
@user = find_or_create_user
|
@user = find_or_create_user
|
||||||
send_confirmation_if_required
|
|
||||||
create_account_user
|
create_account_user
|
||||||
end
|
end
|
||||||
@user
|
@user
|
||||||
@@ -34,11 +33,6 @@ class AgentBuilder
|
|||||||
User.create!(email: email, name: name, password: temp_password, password_confirmation: temp_password)
|
User.create!(email: email, name: name, password: temp_password, password_confirmation: temp_password)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Sends confirmation instructions if the user is persisted and not confirmed.
|
|
||||||
def send_confirmation_if_required
|
|
||||||
@user.send_confirmation_instructions if user_needs_confirmation?
|
|
||||||
end
|
|
||||||
|
|
||||||
# Checks if the user needs confirmation.
|
# Checks if the user needs confirmation.
|
||||||
# @return [Boolean] true if the user is persisted and not confirmed, false otherwise.
|
# @return [Boolean] true if the user is persisted and not confirmed, false otherwise.
|
||||||
def user_needs_confirmation?
|
def user_needs_confirmation?
|
||||||
|
|||||||
@@ -67,21 +67,5 @@ RSpec.describe AgentBuilder, type: :model do
|
|||||||
expect(user.encrypted_password).not_to be_empty
|
expect(user.encrypted_password).not_to be_empty
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with confirmation required' do
|
|
||||||
let(:unconfirmed_user) { create(:user, email: email) }
|
|
||||||
|
|
||||||
before do
|
|
||||||
unconfirmed_user.confirmed_at = nil
|
|
||||||
unconfirmed_user.save(validate: false)
|
|
||||||
allow(unconfirmed_user).to receive(:confirmed?).and_return(false)
|
|
||||||
end
|
|
||||||
|
|
||||||
it 'sends confirmation instructions' do
|
|
||||||
user = agent_builder.perform
|
|
||||||
expect(user).to receive(:send_confirmation_instructions)
|
|
||||||
agent_builder.send(:send_confirmation_if_required)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user