Fix Error 500 when inviting user already present
A project admin attempting to invite an already-invited user will see a confusing Error 500 message. Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/61574
This commit is contained in:
parent
712dccd4c0
commit
f16406167e
3 changed files with 27 additions and 2 deletions
|
@ -23,7 +23,16 @@ module Members
|
|||
|
||||
members.each do |member|
|
||||
if member.errors.any?
|
||||
errors << "#{member.user.username}: #{member.errors.full_messages.to_sentence}"
|
||||
current_error =
|
||||
# Invited users may not have an associated user
|
||||
if member.user.present?
|
||||
"#{member.user.username}: "
|
||||
else
|
||||
""
|
||||
end
|
||||
|
||||
current_error += member.errors.full_messages.to_sentence
|
||||
errors << current_error
|
||||
else
|
||||
after_execute(member: member)
|
||||
end
|
||||
|
|
5
changelogs/unreleased/sh-fix-invited-members.yml
Normal file
5
changelogs/unreleased/sh-fix-invited-members.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Fix Error 500 when inviting user already present
|
||||
merge_request: 28198
|
||||
author:
|
||||
type: fixed
|
|
@ -44,7 +44,18 @@ describe Members::CreateService do
|
|||
result = described_class.new(user, params).execute(project)
|
||||
|
||||
expect(result[:status]).to eq(:error)
|
||||
expect(result[:message]).to include(project_user.username)
|
||||
expect(result[:message]).to include("#{project_user.username}: Access level is not included in the list")
|
||||
expect(project.users).not_to include project_user
|
||||
end
|
||||
|
||||
it 'does not add a member with an existing invite' do
|
||||
invited_member = create(:project_member, :invited, project: project)
|
||||
|
||||
params = { user_ids: invited_member.invite_email,
|
||||
access_level: Gitlab::Access::GUEST }
|
||||
result = described_class.new(user, params).execute(project)
|
||||
|
||||
expect(result[:status]).to eq(:error)
|
||||
expect(result[:message]).to eq('Invite email has already been taken')
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue