FIX: send activation email when accepting invite if password is set

This commit is contained in:
Arpit Jalan
2017-04-15 14:48:05 +05:30
parent c155b05595
commit 0954367bf4
5 changed files with 22 additions and 18 deletions

View File

@@ -36,9 +36,7 @@ class InvitesController < ApplicationController
user = invite.redeem(username: params[:username], password: params[:password])
if user.present?
log_on_user(user)
# Send a welcome message if required
user.enqueue_welcome_message('welcome_invite') if user.send_welcome_message
post_process_invite(user)
end
topic = user.present? ? invite.topics.first : nil
@@ -128,10 +126,7 @@ class InvitesController < ApplicationController
user = Invite.redeem_from_token(params[:token], params[:email], params[:username], params[:name], params[:topic].to_i)
if user.present?
log_on_user(user)
# Send a welcome message if required
user.enqueue_welcome_message('welcome_invite') if user.send_welcome_message
post_process_invite(user)
topic = invite.topics.first
if topic.present?
redirect_to path("#{topic.relative_url}")
@@ -223,4 +218,15 @@ class InvitesController < ApplicationController
false
end
end
private
def post_process_invite(user)
user.enqueue_welcome_message('welcome_invite') if user.send_welcome_message
if user.has_password?
email_token = user.email_tokens.create(email: user.email)
Jobs.enqueue(:critical_user_email, type: :signup, user_id: user.id, email_token: email_token.token)
end
end
end