diff --git a/app/models/invite_redeemer.rb b/app/models/invite_redeemer.rb index ba823aaf512..93496140fa3 100644 --- a/app/models/invite_redeemer.rb +++ b/app/models/invite_redeemer.rb @@ -209,6 +209,7 @@ class InviteRedeemer group = Group.find_by(id: id) if guardian.can_edit_group?(group) invited_user.group_users.create!(group_id: group.id) + GroupActionLogger.new(invite.invited_by, group).log_add_user_to_group(invited_user) DiscourseEvent.trigger(:user_added_to_group, invited_user, group, automatic: false) end end diff --git a/spec/models/invite_redeemer_spec.rb b/spec/models/invite_redeemer_spec.rb index e944f459033..caa1470d7ba 100644 --- a/spec/models/invite_redeemer_spec.rb +++ b/spec/models/invite_redeemer_spec.rb @@ -216,6 +216,30 @@ RSpec.describe InviteRedeemer do expect(user.trust_level).to eq(2) end + it "adds an entry to the group logs when the invited user is added to a group" do + group = Fabricate(:group) + InvitedGroup.create(group_id: group.id, invite_id: invite.id) + group.add_owner(invite.invited_by) + + GroupHistory.destroy_all + + user = InviteRedeemer.new( + invite: invite, + email: invite.email, + username: username, + name: name, + password: password + ).redeem + + expect(group.reload.usernames.split(",")).to include(user.username) + expect(GroupHistory.exists?( + target_user_id: user.id, + acting_user: invite.invited_by.id, + group_id: group.id, + action: GroupHistory.actions[:add_user_to_group] + )).to eq(true) + end + it "only allows one user to be created per invite" do user = invite_redeemer.redeem invite.reload