summaryrefslogtreecommitdiff
path: root/app/services
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2016-05-02 19:58:54 -0400
committerRobert Speicher <rspeicher@gmail.com>2016-05-02 19:58:54 -0400
commitc9bc3d20efba26f9259eac36c2ee8eed1a12ec59 (patch)
tree1562966b23e5c438d565fefae67dda931006f9dd /app/services
parent2c468ebd2cb9dd6e490fab0ac14dea062e11cacf (diff)
parent2d5608ac954128026b87b964dd970de645a766f1 (diff)
downloadgitlab-ce-c9bc3d20efba26f9259eac36c2ee8eed1a12ec59.tar.gz
Merge remote-tracking branch 'dev/master' into 'master'
Diffstat (limited to 'app/services')
-rw-r--r--app/services/merge_requests/build_service.rb3
-rw-r--r--app/services/notes/create_service.rb11
2 files changed, 14 insertions, 0 deletions
diff --git a/app/services/merge_requests/build_service.rb b/app/services/merge_requests/build_service.rb
index fa34753c4fd..3544752d47a 100644
--- a/app/services/merge_requests/build_service.rb
+++ b/app/services/merge_requests/build_service.rb
@@ -7,6 +7,9 @@ module MergeRequests
merge_request.can_be_created = false
merge_request.compare_commits = []
merge_request.source_project = project unless merge_request.source_project
+
+ merge_request.target_project = nil unless can?(current_user, :read_project, merge_request.target_project)
+
merge_request.target_project ||= (project.forked_from_project || project)
merge_request.target_branch ||= merge_request.target_project.default_branch
diff --git a/app/services/notes/create_service.rb b/app/services/notes/create_service.rb
index 2bb312bb252..01586994813 100644
--- a/app/services/notes/create_service.rb
+++ b/app/services/notes/create_service.rb
@@ -5,6 +5,8 @@ module Notes
note.author = current_user
note.system = false
+ return unless valid_project?(note)
+
if note.save
# Finish the harder work in the background
NewNoteWorker.perform_in(2.seconds, note.id, params)
@@ -13,5 +15,14 @@ module Notes
note
end
+
+ private
+
+ def valid_project?(note)
+ return false unless project
+ return true if note.for_commit?
+
+ note.noteable.try(:project) == project
+ end
end
end