Stop showing ci for guest users

When a user is a guest user, and the "Public Pipeline" is set to false
inside of "Settings > CI/CD > General" the commit status in the project
dashboard should not be shown.
This commit is contained in:
Steve Azzopardi 2019-01-22 14:37:49 +01:00 committed by Yorick Peterse
parent 4d7fa59af2
commit ae793606e2
No known key found for this signature in database
GPG Key ID: EDD30D2BEB691AC9
3 changed files with 27 additions and 1 deletions

View File

@ -84,7 +84,7 @@
title: _('Issues'), data: { container: 'body', placement: 'top' } do
= sprite_icon('issues', size: 14, css_class: 'append-right-4')
= number_with_delimiter(project.open_issues_count)
- if pipeline_status && can?(current_user, :read_cross_project) && project.pipeline_status.has_status?
- if pipeline_status && can?(current_user, :read_cross_project) && project.pipeline_status.has_status? && can?(current_user, :read_build, project)
%span.icon-wrapper.pipeline-status
= render_project_pipeline_status(project.pipeline_status, tooltip_placement: 'top')
.updated-note

View File

@ -0,0 +1,5 @@
---
title: Fix showing ci status for guest users when public pipline are not set
merge_request:
author:
type: security

View File

@ -147,6 +147,27 @@ describe 'Dashboard Projects' do
expect(page).to have_link('Commit: passed')
end
end
context 'guest user of project and project has private pipelines' do
let(:guest_user) { create(:user) }
before do
project.update(public_builds: false)
project.add_guest(guest_user)
sign_in(guest_user)
end
it 'shows that the last pipeline passed' do
visit dashboard_projects_path
page.within('.controls') do
expect(page).not_to have_xpath("//a[@href='#{pipelines_project_commit_path(project, project.commit, ref: pipeline.ref)}']")
expect(page).not_to have_css('.ci-status-link')
expect(page).not_to have_css('.ci-status-icon-success')
expect(page).not_to have_link('Commit: passed')
end
end
end
end
context 'last push widget', :use_clean_rails_memory_store_caching do