gitlabhq/app/controllers/notes_controller.rb

57 lines
1.2 KiB
Ruby
Raw Normal View History

2011-10-08 23:36:38 +02:00
class NotesController < ApplicationController
before_filter :project
2011-10-08 23:36:38 +02:00
# Authorize
before_filter :add_project_abilities
2011-12-15 22:57:46 +01:00
before_filter :authorize_read_note!
before_filter :authorize_write_note!, :only => [:create]
2011-10-08 23:36:38 +02:00
respond_to :js
def create
@note = @project.notes.new(params[:note])
@note.author = current_user
if @note.save
notify if params[:notify] == '1'
end
respond_to do |format|
format.html {redirect_to :back}
format.js
2011-10-08 23:36:38 +02:00
end
end
def destroy
@note = @project.notes.find(params[:id])
2011-10-17 12:39:03 +02:00
return access_denied! unless can?(current_user, :admin_note, @note)
2011-10-08 23:36:38 +02:00
@note.destroy
respond_to do |format|
format.js { render :nothing => true }
2011-10-08 23:36:38 +02:00
end
end
protected
2011-10-08 23:36:38 +02:00
def notify
@project.users.reject { |u| u.id == current_user.id } .each do |u|
case @note.noteable_type
when "Commit" then
Notify.note_commit_email(u, @note).deliver
when "Issue" then
Notify.note_issue_email(u, @note).deliver
2011-11-28 21:43:20 +01:00
when "MergeRequest"
true # someone should write email notification
2011-10-16 23:07:10 +02:00
when "Snippet"
true
2011-10-08 23:36:38 +02:00
else
Notify.note_wall_email(u, @note).deliver
end
end
end
end