diff --git a/app/controllers/spree/api/line_items_controller_decorator.rb b/app/controllers/spree/api/line_items_controller_decorator.rb index 5493c74043..1f6498cc86 100644 --- a/app/controllers/spree/api/line_items_controller_decorator.rb +++ b/app/controllers/spree/api/line_items_controller_decorator.rb @@ -1,9 +1,17 @@ Spree::Api::LineItemsController.class_eval do after_filter :apply_enterprise_fees, only: :update - + around_filter :lock, only: :update private + def lock + authorize! :read, order + @line_item = order.line_items.find(params[:id]) + @line_item.with_lock do + yield + end + end + def apply_enterprise_fees authorize! :read, order order.update_distribution_charge!