Class: Ddr::Auth::PublicationAbilityDefinitions

Inherits:
AbilityDefinitions show all
Defined in:
lib/ddr/auth/ability_definitions/publication_ability_definitions.rb

Instance Method Summary collapse

Methods inherited from AbilityDefinitions

call

Instance Method Details

#callObject

An object can’t be published if it’s already published or not publishable It can’t be unpublished if it’s already unpublished It can’t be made nonpublishable if it’s already nonpublishable



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/ddr/auth/ability_definitions/publication_ability_definitions.rb', line 8

def call
  cannot :publish, Ddr::Resource do |obj|
    obj.published? || !obj.publishable?
  end
  cannot :unpublish, Ddr::Resource do |obj|
    !obj.published? && !obj.nonpublishable?
  end
  cannot :make_nonpublishable, Ddr::Resource do |obj|
    obj.nonpublishable?
  end
end