mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: Approves user when redeeming an invite for invites only sites (#16984)
When a site has `SiteSetting.invite_only` enabled, we create a
`ReviewableUser`record when activating a user if the user is not
approved. Therefore, we need to approve the user when redeeming an
invite.
There are some uncertainties surrounding why a `ReviewableRecord` is
created for a user in an invites only site but this commit does not seek
to address that.
Follow-up to 7c4e2d33fa
This commit is contained in:
committed by
GitHub
parent
f94682e2c4
commit
0fa0094531
@@ -1,6 +1,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
describe InviteRedeemer do
|
||||
fab!(:admin) { Fabricate(:admin) }
|
||||
|
||||
describe '.create_user_from_invite' do
|
||||
it "should be created correctly" do
|
||||
@@ -83,6 +84,32 @@ describe InviteRedeemer do
|
||||
expect(user.approved).to eq(false)
|
||||
expect(user.active).to eq(false)
|
||||
end
|
||||
|
||||
it "approves and actives user when redeeming an invite with email token and SiteSetting.invite_only is enabled" do
|
||||
SiteSetting.invite_only = true
|
||||
Jobs.run_immediately!
|
||||
|
||||
invite = Fabricate(:invite,
|
||||
invited_by: admin,
|
||||
email: 'walter.white@email.com',
|
||||
emailed_status: Invite.emailed_status_types[:sent],
|
||||
)
|
||||
|
||||
user = InviteRedeemer.create_user_from_invite(
|
||||
invite: invite,
|
||||
email: invite.email,
|
||||
email_token: invite.email_token,
|
||||
username: 'walter',
|
||||
name: 'Walter White'
|
||||
)
|
||||
|
||||
expect(user.name).to eq("Walter White")
|
||||
expect(user.username).to eq("walter")
|
||||
expect(user.email).to eq("walter.white@email.com")
|
||||
expect(user.approved).to eq(true)
|
||||
expect(user.active).to eq(true)
|
||||
expect(ReviewableUser.count).to eq(0)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#redeem" do
|
||||
|
||||
Reference in New Issue
Block a user