FIX: if approving a user when must_approve_users is false, don't send an email

This commit is contained in:
Neil Lalonde 2015-05-04 15:30:25 -04:00
parent b84c4ef0c6
commit 963ebf5963
2 changed files with 15 additions and 6 deletions

View File

@ -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

View File

@ -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)