Commit cb2be3ce0ab27ac9aa25f0c3eb59047ad5a0153a

Authored by Gabor Liptak
1 parent 560b1ac5

Don't email omniauth created users

app/observers/user_observer.rb
1 class UserObserver < ActiveRecord::Observer 1 class UserObserver < ActiveRecord::Observer
2 def after_create(user) 2 def after_create(user)
3 log_info("User \"#{user.name}\" (#{user.email}) was created") 3 log_info("User \"#{user.name}\" (#{user.email}) was created")
4 -  
5 - Notify.new_user_email(user.id, user.password).deliver 4 + unless user.extern_uid?
  5 + Notify.new_user_email(user.id, user.password).deliver
  6 + end
6 end 7 end
7 8
8 def after_destroy user 9 def after_destroy user
spec/observers/user_observer_spec.rb
@@ -13,17 +13,25 @@ describe UserObserver do @@ -13,17 +13,25 @@ describe UserObserver do
13 end 13 end
14 14
15 context 'when a new user is created' do 15 context 'when a new user is created' do
16 - let(:user) { double(:user, id: 42, password: 'P@ssword!', name: 'John', email: 'u@mail.local') }  
17 let(:notification) { double :notification } 16 let(:notification) { double :notification }
18 17
19 - it 'sends an email' do 18 + it 'sends an email unless external' do
  19 + user = double(:user, id: 42, password: 'P@ssword!', name: 'John', email: 'u@mail.local', extern_uid?: false)
20 notification.should_receive(:deliver) 20 notification.should_receive(:deliver)
21 Notify.should_receive(:new_user_email).with(user.id, user.password).and_return(notification) 21 Notify.should_receive(:new_user_email).with(user.id, user.password).and_return(notification)
22 22
23 subject.after_create(user) 23 subject.after_create(user)
24 end 24 end
25 25
  26 + it 'no email for external' do
  27 + user = double(:user, id: 42, password: 'P@ssword!', name: 'John', email: 'u@mail.local', extern_uid?: true)
  28 + Notify.should_not_receive(:new_user_email)
  29 +
  30 + subject.after_create(user)
  31 + end
  32 +
26 it 'trigger logger' do 33 it 'trigger logger' do
  34 + user = double(:user, id: 42, password: 'P@ssword!', name: 'John', email: 'u@mail.local', extern_uid?: false)
27 Gitlab::AppLogger.should_receive(:info) 35 Gitlab::AppLogger.should_receive(:info)
28 subject.after_create(user) 36 subject.after_create(user)
29 end 37 end