fix: send confirmation email on re-adding agent (#5279)
Send confirmation email after re-adding the agent. Fixes: #4951
This commit is contained in:
@@ -39,7 +39,7 @@ class Api::V1::Accounts::AgentsController < Api::V1::Accounts::BaseController
|
|||||||
# TODO: move this to a builder and combine the save account user method into a builder
|
# TODO: move this to a builder and combine the save account user method into a builder
|
||||||
# ensure the account user association is also created in a single transaction
|
# ensure the account user association is also created in a single transaction
|
||||||
def create_user
|
def create_user
|
||||||
return if @user
|
return @user.send_confirmation_instructions if @user
|
||||||
|
|
||||||
@user = User.create!(new_agent_params.slice(:email, :name, :password, :password_confirmation))
|
@user = User.create!(new_agent_params.slice(:email, :name, :password, :password_confirmation))
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -5,9 +5,15 @@
|
|||||||
<p><%= account_user.inviter.name %>, with <%= account_user.account.name %>, has invited you to try out <%= global_config['BRAND_NAME'] || 'Chatwoot' %>! </p>
|
<p><%= account_user.inviter.name %>, with <%= account_user.account.name %>, has invited you to try out <%= global_config['BRAND_NAME'] || 'Chatwoot' %>! </p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
<% if @resource.confirmed? %>
|
||||||
|
<p>You can login to your account through the link below:</p>
|
||||||
|
<% else %>
|
||||||
<p>You can confirm your account email through the link below:</p>
|
<p>You can confirm your account email through the link below:</p>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<% if account_user&.inviter.present? && @resource.unconfirmed_email.blank? %>
|
<% if @resource.confirmed? %>
|
||||||
|
<p><%= link_to 'Login to my account', frontend_url('auth/sign_in') %></p>
|
||||||
|
<% elsif account_user&.inviter.present? && @resource.unconfirmed_email.blank? %>
|
||||||
<p><%= link_to 'Confirm my account', frontend_url('auth/password/edit', reset_password_token: @resource.send(:set_reset_password_token)) %></p>
|
<p><%= link_to 'Confirm my account', frontend_url('auth/password/edit', reset_password_token: @resource.send(:set_reset_password_token)) %></p>
|
||||||
<% else %>
|
<% else %>
|
||||||
<p><%= link_to 'Confirm my account', frontend_url('auth/confirmation', confirmation_token: @token) %></p>
|
<p><%= link_to 'Confirm my account', frontend_url('auth/confirmation', confirmation_token: @token) %></p>
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ RSpec.describe 'Confirmation Instructions', type: :mailer do
|
|||||||
|
|
||||||
before do
|
before do
|
||||||
# to verify the token in email
|
# to verify the token in email
|
||||||
|
confirmable_user.update!(confirmed_at: nil)
|
||||||
confirmable_user.send(:generate_confirmation_token)
|
confirmable_user.send(:generate_confirmation_token)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -61,5 +62,17 @@ RSpec.describe 'Confirmation Instructions', type: :mailer do
|
|||||||
expect(confirmable_user.unconfirmed_email.blank?).to be false
|
expect(confirmable_user.unconfirmed_email.blank?).to be false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when user already confirmed' do
|
||||||
|
before do
|
||||||
|
confirmable_user.confirm
|
||||||
|
confirmable_user.account_users.last.destroy!
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'send instructions with the link to login' do
|
||||||
|
confirmation_mail = Devise::Mailer.confirmation_instructions(confirmable_user.reload, nil, {})
|
||||||
|
expect(confirmation_mail.body).to include('/auth/sign_in')
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user