diff --git a/app/models/invite_redeemer.rb b/app/models/invite_redeemer.rb index d12f0c57bb6..6f1406b06aa 100644 --- a/app/models/invite_redeemer.rb +++ b/app/models/invite_redeemer.rb @@ -62,6 +62,7 @@ InviteRedeemer = Struct.new(:invite, :username, :name, :password) do send_welcome_message notify_invitee send_password_instructions + enqueue_activation_mail delete_duplicate_invites end @@ -126,6 +127,13 @@ InviteRedeemer = Struct.new(:invite, :username, :name, :password) do end end + def enqueue_activation_mail + if invited_user.has_password? + email_token = invited_user.email_tokens.create(email: invited_user.email) + Jobs.enqueue(:critical_user_email, type: :signup, user_id: invited_user.id, email_token: email_token.token) + end + end + def notify_invitee if inviter = invite.invited_by inviter.notifications.create(notification_type: Notification.types[:invitee_accepted], diff --git a/lib/email/sender.rb b/lib/email/sender.rb index 444ae7d1cb6..cf9695583c3 100644 --- a/lib/email/sender.rb +++ b/lib/email/sender.rb @@ -81,7 +81,7 @@ module Email topic = Topic.find_by(id: topic_id) first_post = topic.ordered_posts.first - topic_message_id = first_post.incoming_email&.message_id.present? ? + topic_message_id = first_post.incoming_email&.message_id.present? ? "<#{first_post.incoming_email.message_id}>" : "" diff --git a/spec/models/invite_redeemer_spec.rb b/spec/models/invite_redeemer_spec.rb index d1d93fda6bf..39d718508ec 100644 --- a/spec/models/invite_redeemer_spec.rb +++ b/spec/models/invite_redeemer_spec.rb @@ -43,6 +43,7 @@ describe InviteRedeemer do SiteSetting.must_approve_users = true inviter = invite.invited_by inviter.admin = true + Jobs.expects(:enqueue).with(:invite_password_instructions_email, has_entries(username: username)) user = invite_redeemer.redeem expect(user.name).to eq(name) @@ -88,6 +89,7 @@ describe InviteRedeemer do it "can set password" do inviter = invite.invited_by + Jobs.expects(:enqueue).with(:critical_user_email, has_entries(type: :signup)) user = InviteRedeemer.new(invite, username, name, password).redeem expect(user).to have_password expect(user.confirm_password?(password)).to eq(true)