Sha256: d0385e04c25c9221cdda260fc2b05789fabbe985a1b6cb0383f82bdf467e61ff

Contents?: true

Size: 1.38 KB

Versions: 19

Compression:

Stored size: 1.38 KB

Contents

Spree::CheckoutController.class_eval do
  before_filter :check_authorization
  before_filter :check_registration, :except => [:registration, :update_registration]

  helper 'spree/users'

  def registration
    @user = Spree::User.new
  end

  def update_registration
    fire_event("spree.user.signup", :order => current_order)
    # hack - temporarily change the state to something other than cart so we can validate the order email address
    current_order.state = 'address'
    if current_order.update_attributes(params[:order])
      redirect_to checkout_path
    else
      @user = Spree::User.new
      render 'registration'
    end
  end

  private
    def check_authorization
      authorize!(:edit, current_order, session[:access_token])
    end

    # Introduces a registration step whenever the +registration_step+ preference is true.
    def check_registration
      return unless Spree::Auth::Config[:registration_step]
      return if current_user or current_order.email
      store_location
      redirect_to spree.checkout_registration_path
    end

    # Overrides the equivalent method defined in Spree::Core.  This variation of the method will ensure that users
    # are redirected to the tokenized order url unless authenticated as a registered user.
    def completion_route
      return order_path(@order) if current_user
      spree.token_order_path(@order, @order.token)
    end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
spree_auth-1.1.5 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.0.7 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.1.4 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.1.3 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.0.6 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.0.5 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.1.2 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.1.2.rc1 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.1.1 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.1.0 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.0.4 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.1.0.rc2 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.1.0.rc1 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.0.3 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.0.2 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.0.1 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.0.0 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.0.0.rc4 app/controllers/spree/checkout_controller_decorator.rb
spree_auth-1.0.0.rc3 app/controllers/spree/checkout_controller_decorator.rb