summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authordrew cimino <dcimino@gitlab.com>2019-08-21 01:42:28 -0400
committerdrew cimino <dcimino@gitlab.com>2019-08-22 03:27:01 -0400
commit79b91f6739e88bd4a82a2d2efc125865116f8379 (patch)
treea9672504a8e253e07ad36b879ebbb08d0054e032 /app
parent914bed6c7a7182a2affcd8f399e257b950e6bace (diff)
downloadgitlab-ce-79b91f6739e88bd4a82a2d2efc125865116f8379.tar.gz
Restrict MergeRequests#test_reports to authenticated users with read-access on Builds
Diffstat (limited to 'app')
-rw-r--r--app/controllers/projects/merge_requests_controller.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index 97238dbb385..5a9d9d8b593 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -12,6 +12,7 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
skip_before_action :merge_request, only: [:index, :bulk_update]
before_action :whitelist_query_limiting, only: [:assign_related_issues, :update]
before_action :authorize_update_issuable!, only: [:close, :edit, :update, :remove_wip, :sort]
+ before_action :authorize_test_reports!, only: [:test_reports]
before_action :set_issuables_index, only: [:index]
before_action :authenticate_user!, only: [:assign_related_issues]
before_action :check_user_can_push_to_source_branch!, only: [:rebase]
@@ -346,4 +347,9 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
render json: { status_reason: 'Unknown error' }, status: :internal_server_error
end
end
+
+ def authorize_test_reports!
+ # MergeRequest#actual_head_pipeline is the pipeline accessed in MergeRequest#compare_reports.
+ return render_404 unless can?(current_user, :read_build, merge_request.actual_head_pipeline)
+ end
end