Change Note#to_ability_name to 'note'
This is to be more consistent as there is already a :read_note policy in NotePolicy. To keep other behaviour the same we've introduced a Note#noteable_ability_name that is used anywhere this was expected.
This commit is contained in:
		
							parent
							
								
									dffeff5520
								
							
						
					
					
						commit
						0df265b660
					
				| 
						 | 
				
			
			@ -16,6 +16,7 @@ class Discussion
 | 
			
		|||
            :commit_id,
 | 
			
		||||
            :for_commit?,
 | 
			
		||||
            :for_merge_request?,
 | 
			
		||||
            :noteable_ability_name,
 | 
			
		||||
            :to_ability_name,
 | 
			
		||||
            :editable?,
 | 
			
		||||
            :visible_for?,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -361,6 +361,10 @@ class Note < ApplicationRecord
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  def to_ability_name
 | 
			
		||||
    model_name.singular
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def noteable_ability_name
 | 
			
		||||
    for_snippet? ? noteable.class.name.underscore : noteable_type.demodulize.underscore
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,7 @@ class NotePolicy < BasePolicy
 | 
			
		|||
 | 
			
		||||
  condition(:editable, scope: :subject) { @subject.editable? }
 | 
			
		||||
 | 
			
		||||
  condition(:can_read_noteable) { can?(:"read_#{@subject.to_ability_name}") }
 | 
			
		||||
  condition(:can_read_noteable) { can?(:"read_#{@subject.noteable_ability_name}") }
 | 
			
		||||
 | 
			
		||||
  condition(:is_visible) { @subject.visible_for?(@user) }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -281,7 +281,7 @@ class NotificationService
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  def send_new_note_notifications(note)
 | 
			
		||||
    notify_method = "note_#{note.to_ability_name}_email".to_sym
 | 
			
		||||
    notify_method = "note_#{note.noteable_ability_name}_email".to_sym
 | 
			
		||||
 | 
			
		||||
    recipients = NotificationRecipientService.build_new_note_recipients(note)
 | 
			
		||||
    recipients.each do |recipient|
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -578,24 +578,30 @@ describe Note do
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  describe '#to_ability_name' do
 | 
			
		||||
    it 'returns snippet for a project snippet note' do
 | 
			
		||||
      expect(build(:note_on_project_snippet).to_ability_name).to eq('project_snippet')
 | 
			
		||||
    it 'returns note' do
 | 
			
		||||
      expect(build(:note).to_ability_name).to eq('note')
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe '#noteable_ability_name' do
 | 
			
		||||
    it 'returns project_snippet for a project snippet note' do
 | 
			
		||||
      expect(build(:note_on_project_snippet).noteable_ability_name).to eq('project_snippet')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'returns personal_snippet for a personal snippet note' do
 | 
			
		||||
      expect(build(:note_on_personal_snippet).to_ability_name).to eq('personal_snippet')
 | 
			
		||||
      expect(build(:note_on_personal_snippet).noteable_ability_name).to eq('personal_snippet')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'returns merge_request for an MR note' do
 | 
			
		||||
      expect(build(:note_on_merge_request).to_ability_name).to eq('merge_request')
 | 
			
		||||
      expect(build(:note_on_merge_request).noteable_ability_name).to eq('merge_request')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'returns issue for an issue note' do
 | 
			
		||||
      expect(build(:note_on_issue).to_ability_name).to eq('issue')
 | 
			
		||||
      expect(build(:note_on_issue).noteable_ability_name).to eq('issue')
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    it 'returns issue for a commit note' do
 | 
			
		||||
      expect(build(:note_on_commit).to_ability_name).to eq('commit')
 | 
			
		||||
    it 'returns commit for a commit note' do
 | 
			
		||||
      expect(build(:note_on_commit).noteable_ability_name).to eq('commit')
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue