Skip to content
Snippets Groups Projects
Commit d07f416f authored by Vasilii Iakliushin's avatar Vasilii Iakliushin :two:
Browse files

Do not show participants invisible to the user

Contributes to #347407

**Problem**

We expose participants that the current user cannot see because we
don't provide the current user as an argument to participants method
in GraphQL. When the user is missing, then we use the author of the
issuable permissions to fetch participants.

**Solution**

Remove the feature flag to enable verification for participants

Changelog: changed
parent d2080bb6
No related branches found
No related tags found
1 merge request!77021Do not show participants invisible to the user
......@@ -64,8 +64,6 @@ def participants(user = nil)
#
# Returns an Array of User instances.
def visible_participants(user)
return participants(user) unless Feature.enabled?(:verify_participants_access, project, default_enabled: :yaml)
filter_by_ability(raw_participants(user, verify_access: true))
end
......
---
name: verify_participants_access
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74906
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/347407
milestone: '14.6'
type: development
group: group::source code
default_enabled: false
......@@ -138,7 +138,7 @@
allow(instance).to receive_message_chain(:model_name, :element) { 'class' }
expect(instance).to receive(:foo).and_return(user2)
expect(instance).to receive(:bar).and_return(user3)
expect(instance).to receive(:project).thrice.and_return(project)
expect(instance).to receive(:project).twice.and_return(project)
participants = instance.visible_participants(user1)
......@@ -159,31 +159,10 @@
allow(instance).to receive_message_chain(:model_name, :element) { 'class' }
allow(instance).to receive(:bar).and_return(user2)
expect(instance).to receive(:project).thrice.and_return(project)
expect(instance).to receive(:project).twice.and_return(project)
expect(instance.visible_participants(user1)).to be_empty
end
context 'when feature flag is disabled' do
before do
stub_feature_flags(verify_participants_access: false)
end
it 'returns unavailable participants' do
model.participant(:bar)
instance = model.new
user1 = build(:user)
user2 = build(:user)
project = build(:project, :public)
allow(instance).to receive_message_chain(:model_name, :element) { 'class' }
allow(instance).to receive(:bar).and_return(user2)
expect(instance).to receive(:project).thrice.and_return(project)
expect(instance.visible_participants(user1)).to match_array([user2])
end
end
end
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment