Class: VoluntaryMusicMetadataEnrichment::Ability

Inherits:
Object
  • Object
show all
Defined in:
lib/voluntary_music_metadata_enrichment/ability.rb

Class Method Summary collapse

Class Method Details

.after_initializeObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/voluntary_music_metadata_enrichment/ability.rb', line 3

def self.after_initialize
  Proc.new do |ability, user, options|
    ability.can :read, [
      MusicMetadataEnrichment::Group, MusicMetadataEnrichment::GroupArtistConnection, MusicMetadataEnrichment::GroupMembership,
      MusicMetadataEnrichment::GroupYearInReview, MusicMetadataEnrichment::GroupYearInReviewRelease,
      MusicMetadataEnrichment::GroupYearInReviewTrack,
      YearInReviewMusic, YearInReviewMusicRelease, YearInReviewMusicReleaseFlop, YearInReviewMusicTrack, YearInReviewMusicTrackFlop, 
      MusicArtist, MusicRelease, MusicTrack, MusicVideo
    ]
    
    if user.present?
      ability.can(:create, MusicLibraryArtist)
      ability.can(:destroy, MusicLibraryArtist) {|music_library_artist| music_library_artist.user_id == user.id }
      ability.can(:create, MusicMetadataEnrichment::Group)
      ability.can([:create, :name_confirmation, :select_artist, :creation], MusicMetadataEnrichment::GroupArtistConnection)
      ability.can(:create, MusicMetadataEnrichment::GroupMembership)
      ability.can(:restful_actions, MusicMetadataEnrichment::GroupMembership) {|membership| membership.user_id == user.id }
      ability.can(:create, YearInReviewMusic)
      ability.can([:destroy, :publish], YearInReviewMusic) {|y| y.user_id == user.id }
      ability.can([:create, :move, :destroy, :update_all_positions], YearInReviewMusicRelease) {|r| r.year_in_review_music.user_id == user.id }
      ability.can([:multiple_new, :export], YearInReviewMusicRelease)
      ability.can([:create], YearInReviewMusicReleaseFlop) {|r| r.year_in_review_music.user_id == user.id }
      ability.can([:create, :move, :destroy, :update_all_positions], YearInReviewMusicTrack) {|year_in_review_music_track| year_in_review_music_track.year_in_review_music.user_id == user.id }
      ability.can([:multiple_new, :export], YearInReviewMusicTrack)
      ability.can([:create], YearInReviewMusicTrackFlop) {|t| t.year_in_review_music.user_id == user.id }
      ability.can([:create, :name_confirmation], MusicArtist)
      ability.can([:create, :artist_confirmation, :select_artist, :name, :name_confirmation, :announce, :create_announcement], MusicRelease)
      ability.can([:create, :artist_confirmation, :select_artist, :name, :name_confirmation], MusicTrack)
      ability.can([:create, :artist_confirmation, :select_artist, :track_name, :track_confirmation, :create_track, :metadata], MusicVideo)
    end
  end
end