diff --git a/app/controllers/invites_controller.rb b/app/controllers/invites_controller.rb index 32ce8f8f827..433226504cb 100644 --- a/app/controllers/invites_controller.rb +++ b/app/controllers/invites_controller.rb @@ -63,6 +63,7 @@ class InvitesController < ApplicationController def redeem_disposable_invite params.require(:email) params.permit(:username, :name, :topic) + params[:email] = params[:email].split(' ').join('+') invite = Invite.find_by(invite_key: params[:token]) diff --git a/spec/controllers/invites_controller_spec.rb b/spec/controllers/invites_controller_spec.rb index db757845943..f32359d091e 100644 --- a/spec/controllers/invites_controller_spec.rb +++ b/spec/controllers/invites_controller_spec.rb @@ -252,6 +252,11 @@ describe InvitesController do let(:invitee) { Fabricate(:user) } let(:invite) { Invite.create!(invited_by: invitee) } + it 'converts "space" to "+" in email parameter' do + Invite.expects(:redeem_from_token).with(invite.invite_key, "fname+lname@example.com", nil, nil, topic.id) + get :redeem_disposable_invite, email: "fname lname@example.com", token: invite.invite_key, topic: topic.id + end + it 'redeems the invite' do Invite.expects(:redeem_from_token).with(invite.invite_key, "name@example.com", nil, nil, topic.id) get :redeem_disposable_invite, email: "name@example.com", token: invite.invite_key, topic: topic.id