BUG FIX: Dont send re-conf email if email is unchanged

pull/527/head
Rick Carlino 2017-11-09 15:29:10 -06:00
parent e78d8052fa
commit 3c3f711a1d
2 changed files with 15 additions and 7 deletions

View File

@ -32,7 +32,7 @@ private
# Self hosted users will often not have an email server.
# We can update emails immediately in those circumstances.
def skip_email_stuff
@skip_email_stuff ||= !!ENV["NO_EMAILS"]
@skip_email_stuff ||= !!ENV["NO_EMAILS"] || (email == user.email)
end
def set_unconfirmed_email

View File

@ -8,11 +8,19 @@ describe Users::Update do
password: "password12345",
password_confirmation: "password12345",
agree_to_terms: true)
u = User.last
u2 = FactoryBot.create(:user)
Users::Update.run!(user: u, email: u.email)
result = Users::Update.run(user: u, email: u2.email)
expect(result.success?).to be(false)
expect(result.errors.message_list).to include(Users::Update::EMAIL_IN_USE)
u = User.last
u2 = FactoryBot.create(:user)
Users::Update.run!(user: u, email: u.email)
result = Users::Update.run(user: u, email: u2.email)
expect(result.success?).to be(false)
expect(result.errors.message_list).to include(Users::Update::EMAIL_IN_USE)
end
it 'ignores unchanged emails' do
u = FactoryBot.create(:user)
# "useless" update to user record.
result = Users::Update.run(user: u, email: u.email)
expect(result.success?).to be(true)
expect(u.reload.unconfirmed_email).to eq(nil)
end
end