diff --git a/app/controllers/spree/admin/orders/customer_details_controller.rb b/app/controllers/spree/admin/orders/customer_details_controller.rb index 151e3e4d5a..081d76a754 100644 --- a/app/controllers/spree/admin/orders/customer_details_controller.rb +++ b/app/controllers/spree/admin/orders/customer_details_controller.rb @@ -3,6 +3,8 @@ module Spree module Orders class CustomerDetailsController < Spree::Admin::BaseController before_filter :load_order + before_filter :check_authorization + before_filter :set_guest_checkout_status, only: :update def show edit @@ -20,23 +22,48 @@ module Spree if params[:guest_checkout] == "false" @order.associate_user!(Spree.user_class.find_by_email(@order.email)) end - while @order.next; end + + AdvanceOrderService.new(@order).call @order.shipments.map &:refresh_rates flash[:success] = Spree.t('customer_details_updated') redirect_to admin_order_customer_path(@order) else - render :action => :edit + render action: :edit end + end + # Inherit CanCan permissions for the current order + def model_class + load_order unless @order + @order end private - def load_order - @order = Order.find_by_number!(params[:order_id], :include => :adjustments) - end + def load_order + @order = Order.find_by_number!(params[:order_id], :include => :adjustments) + end + def check_authorization + load_order + session[:access_token] ||= params[:token] + + resource = @order + action = params[:action].to_sym + action = :edit if action == :show # show route renders :edit for this controller + + authorize! action, resource, session[:access_token] + end + + def set_guest_checkout_status + registered_user = Spree::User.find_by_email(params[:order][:email]) + + params[:order][:guest_checkout] = registered_user.nil? + + return unless registered_user + @order.user_id = registered_user.id + end end end end diff --git a/app/controllers/spree/admin/orders/customer_details_controller_decorator.rb b/app/controllers/spree/admin/orders/customer_details_controller_decorator.rb deleted file mode 100644 index 996e9a72fb..0000000000 --- a/app/controllers/spree/admin/orders/customer_details_controller_decorator.rb +++ /dev/null @@ -1,49 +0,0 @@ -Spree::Admin::Orders::CustomerDetailsController.class_eval do - before_filter :check_authorization - before_filter :set_guest_checkout_status, only: :update - - def update - if @order.update_attributes(params[:order]) - if params[:guest_checkout] == "false" - @order.associate_user!(Spree.user_class.find_by_email(@order.email)) - end - - AdvanceOrderService.new(@order).call - - @order.shipments.map &:refresh_rates - flash[:success] = Spree.t('customer_details_updated') - redirect_to admin_order_customer_path(@order) - else - render action: :edit - end - end - - # Inherit CanCan permissions for the current order - def model_class - load_order unless @order - @order - end - - private - - def check_authorization - load_order - session[:access_token] ||= params[:token] - - resource = @order - action = params[:action].to_sym - action = :edit if action == :show # show route renders :edit for this controller - - authorize! action, resource, session[:access_token] - end - - def set_guest_checkout_status - registered_user = Spree::User.find_by_email(params[:order][:email]) - - params[:order][:guest_checkout] = registered_user.nil? - - return unless registered_user - - @order.user_id = registered_user.id - end -end