mirror of
https://github.com/discourse/discourse.git
synced 2025-05-31 06:13:26 +08:00
FIX: Don't show that an existing user is invited_by another user (#27665)
If an existing user (John) accepts an invite created by Kenny to a group, John may be seen as invited by Kenny, despite already having an account on the site. This fix removes the bug by excluding invites that determine the invited_by after the user's creation date. The delay buffer in the query accounts for invites that also create the user at the same time.
This commit is contained in:
@ -3235,11 +3235,26 @@ RSpec.describe User do
|
||||
describe "#invited_by" do
|
||||
it "returns even if invites was trashed" do
|
||||
invite = Fabricate(:invite, invited_by: Fabricate(:user))
|
||||
Fabricate(:invited_user, invite: invite, user: user)
|
||||
Fabricate(:invited_user, invite: invite, user: user, redeemed_at: Time.now)
|
||||
invite.trash!
|
||||
|
||||
expect(user.invited_by).to eq(invite.invited_by)
|
||||
end
|
||||
|
||||
it "does not return invites that are not redeemed yet" do
|
||||
invite = Fabricate(:invite, invited_by: Fabricate(:user))
|
||||
Fabricate(:invited_user, invite: invite, user: user, redeemed_at: nil)
|
||||
invite.trash!
|
||||
|
||||
expect(user.invited_by).to eq(nil)
|
||||
end
|
||||
|
||||
it "excludes invites redeemed after user creation" do
|
||||
invite = Fabricate(:invite, invited_by: Fabricate(:user))
|
||||
Fabricate(:invited_user, invite: invite, user: user, redeemed_at: user.created_at + 6.second)
|
||||
|
||||
expect(user.invited_by).to eq(nil)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#username_equals_to?" do
|
||||
|
Reference in New Issue
Block a user