one merge at a time
This commit is contained in:
parent
adfac5fb7b
commit
9041e201e8
3 changed files with 13 additions and 2 deletions
|
@ -18,8 +18,12 @@ module Users
|
||||||
|
|
||||||
if requested_user.present?
|
if requested_user.present?
|
||||||
current_user.ask_for_merge(requested_user)
|
current_user.ask_for_merge(requested_user)
|
||||||
|
current_user.update(unconfirmed_email: nil)
|
||||||
|
|
||||||
flash.notice = t('devise.registrations.update_needs_confirmation')
|
flash.notice = t('devise.registrations.update_needs_confirmation')
|
||||||
elsif current_user.update(update_email_params)
|
elsif current_user.update(update_email_params)
|
||||||
|
current_user.update(requested_merge_into: nil)
|
||||||
|
|
||||||
flash.notice = t('devise.registrations.update_needs_confirmation')
|
flash.notice = t('devise.registrations.update_needs_confirmation')
|
||||||
else
|
else
|
||||||
flash.alert = current_user.errors.full_messages
|
flash.alert = current_user.errors.full_messages
|
||||||
|
|
|
@ -21,11 +21,12 @@
|
||||||
Votre email est actuellement
|
Votre email est actuellement
|
||||||
%span.email-address= current_user.email
|
%span.email-address= current_user.email
|
||||||
|
|
||||||
- if current_user.unconfirmed_email.present?
|
- waiting_email = current_user.unconfirmed_email || current_user.requested_merge_into&.email
|
||||||
|
|
||||||
|
- if waiting_email.present?
|
||||||
%p.mb-4
|
%p.mb-4
|
||||||
Changement en attente :
|
Changement en attente :
|
||||||
%span.email-address= current_user.unconfirmed_email
|
%span.email-address= waiting_email
|
||||||
%br
|
%br
|
||||||
Pour finaliser votre changement d’adresse, vérifiez vos emails et cliquez sur le lien de confirmation.
|
Pour finaliser votre changement d’adresse, vérifiez vos emails et cliquez sur le lien de confirmation.
|
||||||
|
|
||||||
|
|
|
@ -49,12 +49,16 @@ describe Users::ProfilController, type: :controller do
|
||||||
|
|
||||||
describe 'PATCH #update_email' do
|
describe 'PATCH #update_email' do
|
||||||
context 'when everything is fine' do
|
context 'when everything is fine' do
|
||||||
|
let(:previous_request) { create(:user) }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
|
user.update(requested_merge_into: previous_request)
|
||||||
patch :update_email, params: { user: { email: 'loulou@lou.com' } }
|
patch :update_email, params: { user: { email: 'loulou@lou.com' } }
|
||||||
user.reload
|
user.reload
|
||||||
end
|
end
|
||||||
|
|
||||||
it { expect(user.unconfirmed_email).to eq('loulou@lou.com') }
|
it { expect(user.unconfirmed_email).to eq('loulou@lou.com') }
|
||||||
|
it { expect(user.requested_merge_into).to be_nil }
|
||||||
it { expect(response).to redirect_to(profil_path) }
|
it { expect(response).to redirect_to(profil_path) }
|
||||||
it { expect(flash.notice).to eq(I18n.t('devise.registrations.update_needs_confirmation')) }
|
it { expect(flash.notice).to eq(I18n.t('devise.registrations.update_needs_confirmation')) }
|
||||||
end
|
end
|
||||||
|
@ -63,6 +67,8 @@ describe Users::ProfilController, type: :controller do
|
||||||
let(:existing_user) { create(:user) }
|
let(:existing_user) { create(:user) }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
|
user.update(unconfirmed_email: 'unconfirmed@mail.com')
|
||||||
|
|
||||||
expect_any_instance_of(User).to receive(:ask_for_merge).with(existing_user)
|
expect_any_instance_of(User).to receive(:ask_for_merge).with(existing_user)
|
||||||
|
|
||||||
perform_enqueued_jobs do
|
perform_enqueued_jobs do
|
||||||
|
|
Loading…
Add table
Reference in a new issue