FEATURE: Activate users invited via email when invite is redeemed

Do not send an activation email to users invited via email. They
already confirmed their email address by clicking the invite link.
Users invited via link will need to confirm their email address before
they can login.
This commit is contained in:
Gerhard Schlager
2018-12-10 23:24:02 +01:00
parent 73d2fc194d
commit 7977b09025
8 changed files with 121 additions and 34 deletions

View File

@@ -38,7 +38,7 @@ describe InviteRedeemer do
expect(user.id).to eq(staged_user.id)
expect(user.username).to eq('walter')
expect(user.name).to eq('Walter White')
expect(user.active).to eq(false)
expect(user.staged).to eq(false)
expect(user.email).to eq('staged@account.com')
expect(user.approved).to eq(true)
end
@@ -99,7 +99,6 @@ describe InviteRedeemer do
end
it "can set password" do
inviter = invite.invited_by
user = InviteRedeemer.new(invite, username, name, password).redeem
expect(user).to have_password
expect(user.confirm_password?(password)).to eq(true)

View File

@@ -142,6 +142,27 @@ describe Invite do
expect(invite.topics).to match_array([topic, another_topic])
end
end
it 'correctly marks invite as sent via email' do
expect(invite.via_email).to eq(true)
Invite.invite_by_email(iceking, inviter, topic)
expect(invite.reload.via_email).to eq(true)
end
it 'does not mark invite as sent via email after generating invite link' do
expect(invite.via_email).to eq(true)
Invite.generate_invite_link(iceking, inviter, topic)
expect(invite.reload.via_email).to eq(false)
Invite.invite_by_email(iceking, inviter, topic)
expect(invite.reload.via_email).to eq(false)
Invite.generate_invite_link(iceking, inviter, topic)
expect(invite.reload.via_email).to eq(false)
end
end
end
end