Module: CurationConcerns::Ability

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

Instance Method Summary collapse

Instance Method Details

#add_to_collectionObject



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

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

#admin?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'app/models/concerns/curation_concerns/ability.rb', line 28

def admin?
  user_groups.include? 'admin'
end

#admin_permissionsObject



24
25
26
# File 'app/models/concerns/curation_concerns/ability.rb', line 24

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

#curation_concerns_permissionsObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/models/concerns/curation_concerns/ability.rb', line 8

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

#everyone_can_create_curation_concernsObject

Add this to your ability_logic if you want all logged in users to be able to submit content



43
44
45
46
47
# File 'app/models/concerns/curation_concerns/ability.rb', line 43

def everyone_can_create_curation_concerns
  return unless registered_user?
  can :create, [::FileSet, ::Collection]
  can :create, [CurationConcerns.config.curation_concerns]
end

#registered_user?Boolean

Returns:

  • (Boolean)


37
38
39
# File 'app/models/concerns/curation_concerns/ability.rb', line 37

def registered_user?
  user_groups.include? 'registered'
end