From 963ebf5963785f1c8af328139ded7dc39d69efc7 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Mon, 4 May 2015 15:30:25 -0400 Subject: [PATCH] FIX: if approving a user when must_approve_users is false, don't send an email --- app/models/user.rb | 12 +++++++----- spec/models/user_spec.rb | 9 ++++++++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 96700fa2aa0..e9f1ebbb856 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -850,11 +850,13 @@ class User < ActiveRecord::Base end def send_approval_email - Jobs.enqueue(:user_email, - type: :signup_after_approval, - user_id: id, - email_token: email_tokens.first.token - ) + if SiteSetting.must_approve_users + Jobs.enqueue(:user_email, + type: :signup_after_approval, + user_id: id, + email_token: email_tokens.first.token + ) + end end def set_default_email_digest diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index a85f0600e64..58a48f71d19 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -45,13 +45,20 @@ describe User do let(:user) { Fabricate(:user) } let(:admin) { Fabricate(:admin) } - it "enqueues a 'signup after approval' email" do + it "enqueues a 'signup after approval' email if must_approve_users is true" do + SiteSetting.stubs(:must_approve_users).returns(true) Jobs.expects(:enqueue).with( :user_email, has_entries(type: :signup_after_approval) ) user.approve(admin) end + it "doesn't enqueue a 'signup after approval' email if must_approve_users is false" do + SiteSetting.stubs(:must_approve_users).returns(false) + Jobs.expects(:enqueue).never + user.approve(admin) + end + context 'after approval' do before do user.approve(admin)