Module: Sufia::Ability

Extended by:
ActiveSupport::Concern
Defined in:
app/models/concerns/sufia/ability.rb

Instance Method Summary collapse

Instance Method Details

#citation_abilitiesObject



54
55
56
# File 'app/models/concerns/sufia/ability.rb', line 54

def citation_abilities
  alias_action :citation, to: :read
end

#editor_abilitiesObject



40
41
42
43
44
45
46
47
# File 'app/models/concerns/sufia/ability.rb', line 40

def editor_abilities
  can :read, ContentBlock
  return unless admin?

  can :create, TinymceAsset
  can [:create, :update], ContentBlock
  can :edit, ::SolrDocument
end


36
37
38
# File 'app/models/concerns/sufia/ability.rb', line 36

def featured_work_abilities
  can [:create, :destroy, :update], FeaturedWork if admin?
end

#proxy_deposit_abilitiesObject



21
22
23
24
25
26
27
28
29
30
# File 'app/models/concerns/sufia/ability.rb', line 21

def proxy_deposit_abilities
  can :transfer, String do |id|
    user_is_depositor?(id)
  end
  can :create, ProxyDepositRequest if registered_user?
  can :accept, ProxyDepositRequest, receiving_user_id: current_user.id, status: 'pending'
  can :reject, ProxyDepositRequest, receiving_user_id: current_user.id, status: 'pending'
  # a user who sent a proxy deposit request can cancel it if it's pending.
  can :destroy, ProxyDepositRequest, sending_user_id: current_user.id, status: 'pending'
end

#stats_abilitiesObject



49
50
51
52
# File 'app/models/concerns/sufia/ability.rb', line 49

def stats_abilities
  can :read, Sufia::Statistics if admin?
  alias_action :stats, to: :read
end

#uploaded_file_abilitiesObject



15
16
17
18
19
# File 'app/models/concerns/sufia/ability.rb', line 15

def uploaded_file_abilities
  return unless registered_user?
  can :create, [UploadedFile, BatchUploadItem]
  can :destroy, UploadedFile, user: current_user
end

#user_abilitiesObject



32
33
34
# File 'app/models/concerns/sufia/ability.rb', line 32

def user_abilities
  can [:edit, :update, :toggle_trophy], ::User, id: current_user.id
end