diff options
author | Stan Hu <stanhu@gmail.com> | 2018-10-14 06:07:12 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-10-15 10:18:04 -0700 |
commit | c6ac04e4da60707a7bf13c796f95844e5409f451 (patch) | |
tree | 241b92c458a0bb1b34b4aa33ac4e9c80967cd849 | |
parent | 75b6ed8d2d0591efa19b02173c0524551e95f691 (diff) | |
download | gitlab-ce-c6ac04e4da60707a7bf13c796f95844e5409f451.tar.gz |
Fix commit signature error when project is disabled
When a project is disabled, visiting the home page would show,
"An error occurred while loading commit signatures". This change checks
that the user has permission to view the project to avoid unnecessary
GPG signature lookups.
Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/50903
-rw-r--r-- | app/views/projects/show.html.haml | 4 | ||||
-rw-r--r-- | changelogs/unreleased/sh-fix-commit-signatures-error.yml | 5 | ||||
-rw-r--r-- | spec/features/projects_spec.rb | 17 |
3 files changed, 24 insertions, 2 deletions
diff --git a/app/views/projects/show.html.haml b/app/views/projects/show.html.haml index aba289c790f..283031b06da 100644 --- a/app/views/projects/show.html.haml +++ b/app/views/projects/show.html.haml @@ -8,8 +8,8 @@ = render partial: 'flash_messages', locals: { project: @project } -- if @project.repository_exists? && !@project.empty_repo? - - signatures_path = namespace_project_signatures_path(namespace_id: @project.namespace.full_path, project_id: @project.path, id: @project.default_branch) +- if !@project.empty_repo? && can?(current_user, :download_code, @project) + - signatures_path = project_signatures_path(@project, @project.default_branch) .js-signature-container{ data: { 'signatures-path': signatures_path } } %div{ class: [container_class, ("limit-container-width" unless fluid_layout)] } diff --git a/changelogs/unreleased/sh-fix-commit-signatures-error.yml b/changelogs/unreleased/sh-fix-commit-signatures-error.yml new file mode 100644 index 00000000000..e2ea0e5857e --- /dev/null +++ b/changelogs/unreleased/sh-fix-commit-signatures-error.yml @@ -0,0 +1,5 @@ +--- +title: Fix commit signature error when project is disabled +merge_request: 22344 +author: +type: fixed diff --git a/spec/features/projects_spec.rb b/spec/features/projects_spec.rb index 8e310f38a8c..fb766addb31 100644 --- a/spec/features/projects_spec.rb +++ b/spec/features/projects_spec.rb @@ -193,6 +193,23 @@ describe 'Project' do end end + describe 'when the project repository is disabled', :js do + let(:user) { create(:user) } + let(:project) { create(:project, :repository_disabled, :repository, namespace: user.namespace) } + + before do + sign_in(user) + project.add_maintainer(user) + visit project_path(project) + end + + it 'does not show an error' do + wait_for_requests + + expect(page).not_to have_selector('.flash-alert') + end + end + describe 'removal', :js do let(:user) { create(:user) } let(:project) { create(:project, namespace: user.namespace) } |