diff --git a/app/controllers/projects/notes_controller.rb b/app/controllers/projects/notes_controller.rb index 2154b6ed2eb77e47b38da99b80e620eb8b6f7f0c..7b08b79d236ef1a4061a3adf5409ba049ebb4fe5 100644 --- a/app/controllers/projects/notes_controller.rb +++ b/app/controllers/projects/notes_controller.rb @@ -30,8 +30,10 @@ class Projects::NotesController < Projects::ApplicationController end def update - note.update_attributes(note_params) - note.reset_events_cache + if note.editable? + note.update_attributes(note_params) + note.reset_events_cache + end respond_to do |format| format.json { render_note_json(note) } @@ -40,8 +42,10 @@ class Projects::NotesController < Projects::ApplicationController end def destroy - note.destroy - note.reset_events_cache + if note.editable? + note.destroy + note.reset_events_cache + end respond_to do |format| format.js { render nothing: true } diff --git a/app/models/note.rb b/app/models/note.rb index 01f72b95c4808e5c047430f88af32d2d4d14ea33..0fa1a7ab615615fc7e4d7c1b4017ec52ea005b3d 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -337,4 +337,8 @@ class Note < ActiveRecord::Base def set_references notice_added_references(project, author) end + + def editable? + !system + end end diff --git a/app/views/projects/notes/_note.html.haml b/app/views/projects/notes/_note.html.haml index 90fc554e987d09a4a568e58ecae1847b2cd3f929..394fa88e04591be2784aea3ca3e0f1230409a6ef 100644 --- a/app/views/projects/notes/_note.html.haml +++ b/app/views/projects/notes/_note.html.haml @@ -9,7 +9,7 @@ %i.icon-link Link here   - - if(note.author_id == current_user.try(:id)) || can?(current_user, :admin_note, @project) + - if can?(current_user, :admin_note, note) && note.editable? = link_to "#", title: "Edit comment", class: "js-note-edit" do %i.icon-edit Edit