diff options
author | Douwe Maan <douwe@selenight.nl> | 2017-03-30 21:06:09 -0600 |
---|---|---|
committer | Luke "Jared" Bennett <lbennett@gitlab.com> | 2017-04-05 17:44:14 +0100 |
commit | 21e10888c3fc0fe545c0443cf0e23f593df847a4 (patch) | |
tree | c6c89c2ea2c75ffae4529ab4dceb937ce2f6299a /app/controllers/concerns/renders_notes.rb | |
parent | fe26b8af94e8e12a66249e28e34196a4f8b987c4 (diff) | |
download | gitlab-ce-21e10888c3fc0fe545c0443cf0e23f593df847a4.tar.gz |
Address review comments
Diffstat (limited to 'app/controllers/concerns/renders_notes.rb')
-rw-r--r-- | app/controllers/concerns/renders_notes.rb | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/app/controllers/concerns/renders_notes.rb b/app/controllers/concerns/renders_notes.rb new file mode 100644 index 00000000000..dd21066ac13 --- /dev/null +++ b/app/controllers/concerns/renders_notes.rb @@ -0,0 +1,20 @@ +module RendersNotes + def prepare_notes_for_rendering(notes) + preload_noteable_for_regular_notes(notes) + preload_max_access_for_authors(notes, @project) + Banzai::NoteRenderer.render(notes, @project, current_user) + + notes + end + + private + + def preload_max_access_for_authors(notes, project) + user_ids = notes.map(&:author_id) + project.team.max_member_access_for_user_ids(user_ids) + end + + def preload_noteable_for_regular_notes(notes) + ActiveRecord::Associations::Preloader.new.preload(notes.reject(&:for_commit?), :noteable) + end +end |