summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorPatrick Bajao <ebajao@gitlab.com>2019-01-25 15:44:50 +0800
committerPatrick Bajao <ebajao@gitlab.com>2019-02-15 14:22:34 +0800
commit912bd48c319d2bfa96a3522f096d8637cf850705 (patch)
tree4020c139a21b16a7c27195265773bc5570e61b08 /app
parent22e1c70f2b5ba2d188725719c5c7196586ad30ce (diff)
downloadgitlab-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.rb6
-rw-r--r--app/finders/merge_requests_finder.rb9
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