Module: Sufia::Ability
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/models/concerns/sufia/ability.rb
Instance Method Summary collapse
- #admin_set_abilities ⇒ Object
- #citation_abilities ⇒ Object
- #editor_abilities ⇒ Object
- #feature_abilities ⇒ Object
- #featured_work_abilities ⇒ Object
- #proxy_deposit_abilities ⇒ Object
- #stats_abilities ⇒ Object
- #uploaded_file_abilities ⇒ Object
- #user_abilities ⇒ Object
Instance Method Details
#admin_set_abilities ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 |
# File 'app/models/concerns/sufia/ability.rb', line 68 def admin_set_abilities can :manage, [AdminSet, Sufia::PermissionTemplate, Sufia::PermissionTemplateAccess] if admin? can [:create, :edit, :update, :destroy], Sufia::PermissionTemplate do |template| test_edit(template.admin_set_id) end can [:create, :edit, :update, :destroy], Sufia::PermissionTemplateAccess do |access| test_edit(access..admin_set_id) end end |
#citation_abilities ⇒ Object
60 61 62 |
# File 'app/models/concerns/sufia/ability.rb', line 60 def citation_abilities alias_action :citation, to: :read end |
#editor_abilities ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'app/models/concerns/sufia/ability.rb', line 45 def editor_abilities can :read, ContentBlock return unless admin? can :read, :admin_dashboard can :create, TinymceAsset can [:create, :update], ContentBlock can :edit, ::SolrDocument end |
#feature_abilities ⇒ Object
64 65 66 |
# File 'app/models/concerns/sufia/ability.rb', line 64 def feature_abilities can :manage, Sufia::Feature if admin? end |
#featured_work_abilities ⇒ Object
41 42 43 |
# File 'app/models/concerns/sufia/ability.rb', line 41 def featured_work_abilities can [:create, :destroy, :update], FeaturedWork if admin? end |
#proxy_deposit_abilities ⇒ Object
26 27 28 29 30 31 32 33 34 35 |
# File 'app/models/concerns/sufia/ability.rb', line 26 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_abilities ⇒ Object
55 56 57 58 |
# File 'app/models/concerns/sufia/ability.rb', line 55 def stats_abilities can :read, Sufia::Statistics if admin? alias_action :stats, to: :read end |
#uploaded_file_abilities ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'app/models/concerns/sufia/ability.rb', line 17 def uploaded_file_abilities return unless registered_user? can :create, [UploadedFile, BatchUploadItem] can :destroy, UploadedFile, user: current_user # BatchUploadItem permissions depend on the kind of objects being made by the batch, # but it must be authorized directly in the controller, not here. # Note: cannot call `authorized_models` without going recursive. end |
#user_abilities ⇒ Object
37 38 39 |
# File 'app/models/concerns/sufia/ability.rb', line 37 def user_abilities can [:edit, :update, :toggle_trophy], ::User, id: current_user.id end |