From 40b2361572e25a1dcb3d2c1288070b5bf7842343 Mon Sep 17 00:00:00 2001 From: Mohamed ABDELLANI Date: Thu, 9 May 2024 14:38:21 +0100 Subject: [PATCH 1/2] add LogDestroyPerformer concern to be included in models where we want log destroy action --- app/models/concerns/log_destroy_performer.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 app/models/concerns/log_destroy_performer.rb diff --git a/app/models/concerns/log_destroy_performer.rb b/app/models/concerns/log_destroy_performer.rb new file mode 100644 index 0000000000..298e0e5012 --- /dev/null +++ b/app/models/concerns/log_destroy_performer.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +require 'active_support/concern' + +module LogDestroyPerformer + extend ActiveSupport::Concern + included do + attr_accessor :destroyed_by + after_destroy :log_who_destroyed + + def log_who_destroyed + return if destroyed_by.nil? + + Rails.logger.info "#{self.class} #{id} deleted by #{destroyed_by.id}" + end + end +end From 8ccb59a9ab4c5917571af0ddf164a72039a7823f Mon Sep 17 00:00:00 2001 From: Mohamed ABDELLANI Date: Thu, 9 May 2024 14:39:36 +0100 Subject: [PATCH 2/2] included LogDestroyPerformer on product model --- app/controllers/api/v0/products_controller.rb | 1 + app/models/concerns/log_destroy_performer.rb | 1 + app/models/spree/product.rb | 1 + 3 files changed, 3 insertions(+) diff --git a/app/controllers/api/v0/products_controller.rb b/app/controllers/api/v0/products_controller.rb index eead37ca49..1a72047d73 100644 --- a/app/controllers/api/v0/products_controller.rb +++ b/app/controllers/api/v0/products_controller.rb @@ -42,6 +42,7 @@ module Api authorize! :delete, Spree::Product @product = product_finder.find_product authorize! :delete, @product + @product.destroyed_by = current_api_user @product.destroy render json: @product, serializer: Api::Admin::ProductSerializer, status: :no_content end diff --git a/app/models/concerns/log_destroy_performer.rb b/app/models/concerns/log_destroy_performer.rb index 298e0e5012..d53d8ce3bd 100644 --- a/app/models/concerns/log_destroy_performer.rb +++ b/app/models/concerns/log_destroy_performer.rb @@ -6,6 +6,7 @@ module LogDestroyPerformer extend ActiveSupport::Concern included do attr_accessor :destroyed_by + after_destroy :log_who_destroyed def log_who_destroyed diff --git a/app/models/spree/product.rb b/app/models/spree/product.rb index 4fd670f90e..d760c329ec 100755 --- a/app/models/spree/product.rb +++ b/app/models/spree/product.rb @@ -23,6 +23,7 @@ require 'open_food_network/property_merge' module Spree class Product < ApplicationRecord include ProductStock + include LogDestroyPerformer self.belongs_to_required_by_default = false