Sha256: e45a31456b7816df6cfaa9e3807dc9503e2abf01dae3fcfe8e5fa2af4e7e2163

Contents?: true

Size: 686 Bytes

Versions: 16

Compression:

Stored size: 686 Bytes

Contents

class RailsOps::Operation::Model::Destroy < RailsOps::Operation::Model::Load
  model_authorization_action :destroy
  lock_mode :exclusive

  def model_authorization
    return unless authorization_enabled?

    unless load_model_authorization_action.nil?
      authorize_model_with_authorize_only! load_model_authorization_action, model
    end

    unless model_authorization_action.nil?
      authorize_model! model_authorization_action, model
    end
  end

  policy do
    if model.respond_to?(:deleteable?) && !model.deleteable?
      fail RailsOps::Exceptions::ModelNotDeleteable
    end
  end

  def perform
    trigger :before_destroy, model: model
    model.destroy!
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
rails_ops-1.5.8 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.5.7 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.5.6 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.5.5 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.5.4 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.5.0 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.4.8 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.4.7 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.4.6 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.4.5 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.4.4 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.4.3 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.4.2 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.4.1 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.4.0 lib/rails_ops/operation/model/destroy.rb
rails_ops-1.3.0 lib/rails_ops/operation/model/destroy.rb