Sha256: d0e9b0ece9e675de626fc067683f821070902e86ab0b9782c3a919f6c4cee0d8

Contents?: true

Size: 1.22 KB

Versions: 13

Compression:

Stored size: 1.22 KB

Contents

module CurationConcerns
  module Ability
    extend ActiveSupport::Concern
    included do
      self.ability_logic += [:curation_concerns_permissions, :add_to_collection]
    end

    def curation_concerns_permissions
      unless current_user.new_record?
        can :create, CurationConcerns::ClassifyConcern
      end

      # user can version if they can edit
      alias_action :versions, to: :update

      if admin?
        admin_permissions
      else
        cannot :index, Hydra::AccessControls::Embargo
        cannot :index, Hydra::AccessControls::Lease
      end
    end

    def admin_permissions
      can [:create, :discover, :show, :read, :edit, :update, :destroy], :all
    end

    def admin?
      user_groups.include? 'admin'
    end

    def add_to_collection
      return if current_user.new_record?
      can :collect, :all
    end

    def registered_user?
      user_groups.include? 'registered'
    end

    # Add this to your ability_logic if you want all logged in users to be able
    # to submit content
    def everyone_can_create_curation_concerns
      return unless registered_user?
      can :create, [::FileSet, ::Collection]
      can :create, [CurationConcerns.config.curation_concerns]
    end
  end
end

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
curation_concerns-0.12.0.pre4 app/models/concerns/curation_concerns/ability.rb
curation_concerns-0.12.0.pre3 app/models/concerns/curation_concerns/ability.rb
curation_concerns-0.12.0.pre2 app/models/concerns/curation_concerns/ability.rb
curation_concerns-models-0.12.0.pre1 app/models/concerns/curation_concerns/ability.rb
curation_concerns-models-0.11.0 app/models/concerns/curation_concerns/ability.rb
curation_concerns-models-0.11.0.rc1 app/models/concerns/curation_concerns/ability.rb
curation_concerns-models-0.10.0 app/models/concerns/curation_concerns/ability.rb
curation_concerns-models-0.9.0 app/models/concerns/curation_concerns/ability.rb
curation_concerns-models-0.8.0 app/models/concerns/curation_concerns/ability.rb
curation_concerns-models-0.7.0 app/models/concerns/curation_concerns/ability.rb
curation_concerns-models-0.6.0 app/models/concerns/curation_concerns/ability.rb
curation_concerns-models-0.5.0 app/models/concerns/curation_concerns/ability.rb
curation_concerns-models-0.4.0 app/models/concerns/curation_concerns/ability.rb