diff options
author | Patrick Bajao <ebajao@gitlab.com> | 2019-01-25 15:44:50 +0800 |
---|---|---|
committer | Patrick Bajao <ebajao@gitlab.com> | 2019-02-15 14:22:34 +0800 |
commit | 912bd48c319d2bfa96a3522f096d8637cf850705 (patch) | |
tree | 4020c139a21b16a7c27195265773bc5570e61b08 /app | |
parent | 22e1c70f2b5ba2d188725719c5c7196586ad30ce (diff) | |
download | gitlab-ce-912bd48c319d2bfa96a3522f096d8637cf850705.tar.gz |
Don't allow non-members to see private related MRs
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/projects/commit_controller.rb | 6 | ||||
-rw-r--r-- | app/finders/merge_requests_finder.rb | 9 |
2 files changed, 13 insertions, 2 deletions
diff --git a/app/controllers/projects/commit_controller.rb b/app/controllers/projects/commit_controller.rb index b13c0ae3967..939a09d4fd2 100644 --- a/app/controllers/projects/commit_controller.rb +++ b/app/controllers/projects/commit_controller.rb @@ -65,7 +65,11 @@ class Projects::CommitController < Projects::ApplicationController # rubocop: enable CodeReuse/ActiveRecord def merge_requests - @merge_requests = @commit.merge_requests.map do |mr| + @merge_requests = MergeRequestsFinder.new( + current_user, + project_id: @project.id, + commit_sha: @commit.sha + ).execute.map do |mr| { iid: mr.iid, path: merge_request_path(mr), title: mr.title } end diff --git a/app/finders/merge_requests_finder.rb b/app/finders/merge_requests_finder.rb index b645011a3c5..93bee3f1488 100644 --- a/app/finders/merge_requests_finder.rb +++ b/app/finders/merge_requests_finder.rb @@ -37,13 +37,20 @@ class MergeRequestsFinder < IssuableFinder end def filter_items(_items) - items = by_source_branch(super) + items = by_commit(super) + items = by_source_branch(items) items = by_wip(items) by_target_branch(items) end private + def by_commit(items) + return items unless params[:commit_sha].presence + + items.by_commit_sha(params[:commit_sha]) + end + def source_branch @source_branch ||= params[:source_branch].presence end |