summaryrefslogtreecommitdiff
path: root/app/controllers/concerns
diff options
context:
space:
mode:
authorLuke "Jared" Bennett <lbennett@gitlab.com>2017-07-31 17:24:13 +0100
committerLuke "Jared" Bennett <lbennett@gitlab.com>2017-07-31 17:24:13 +0100
commit0ac012f0ad14e8a77eedb026a2de12bf59fa5881 (patch)
treeac4693a27c1ad2c5d37b5884f4ac316f4d56b0f7 /app/controllers/concerns
parent933cfe1e0c493964052b664c2426a90f845f0042 (diff)
parent2519027442a5645cc9467e842172143e3f56c7c3 (diff)
downloadgitlab-ce-0ac012f0ad14e8a77eedb026a2de12bf59fa5881.tar.gz
Merge remote-tracking branch 'origin/master' into ide
Diffstat (limited to 'app/controllers/concerns')
-rw-r--r--app/controllers/concerns/notes_actions.rb22
1 files changed, 21 insertions, 1 deletions
diff --git a/app/controllers/concerns/notes_actions.rb b/app/controllers/concerns/notes_actions.rb
index a57d9e6e6c0..af5f683bab5 100644
--- a/app/controllers/concerns/notes_actions.rb
+++ b/app/controllers/concerns/notes_actions.rb
@@ -4,6 +4,7 @@ module NotesActions
included do
before_action :authorize_admin_note!, only: [:update, :destroy]
+ before_action :note_project, only: [:create]
end
def index
@@ -28,7 +29,8 @@ module NotesActions
merge_request_diff_head_sha: params[:merge_request_diff_head_sha],
in_reply_to_discussion_id: params[:in_reply_to_discussion_id]
)
- @note = Notes::CreateService.new(project, current_user, create_params).execute
+
+ @note = Notes::CreateService.new(note_project, current_user, create_params).execute
if @note.is_a?(Note)
Banzai::NoteRenderer.render([@note], @project, current_user)
@@ -177,4 +179,22 @@ module NotesActions
def notes_finder
@notes_finder ||= NotesFinder.new(project, current_user, finder_params)
end
+
+ def note_project
+ return @note_project if defined?(@note_project)
+ return nil unless project
+
+ note_project_id = params[:note_project_id]
+
+ @note_project =
+ if note_project_id.present?
+ Project.find(note_project_id)
+ else
+ project
+ end
+
+ return access_denied! unless can?(current_user, :create_note, @note_project)
+
+ @note_project
+ end
end