Sha256: 06368f6f6a29ac26398395b7bdb7e04398988345a81c851b26b67f6f0c660fd5

Contents?: true

Size: 720 Bytes

Versions: 5

Compression:

Stored size: 720 Bytes

Contents

# Merges users orders to their account after sign in and sign up.
Warden::Manager.after_set_user except: :fetch do |user, auth, _opts|
  guest_token = auth.cookies.signed[:guest_token]
  token       = auth.cookies.signed[:token]

  if token.present? && user.is_a?(Spree::User)
    Spree::Order.incomplete.where(token: token, user_id: nil).each do |order|
      order.associate_user!(user)
    end
  elsif guest_token.present? && user.is_a?(Spree::User)
    Spree::Order.incomplete.where(guest_token: guest_token, user_id: nil).each do |order|
      order.associate_user!(user)
    end
  end
end

Warden::Manager.before_logout do |_user, auth, _opts|
  auth.cookies.delete(:guest_token)
  auth.cookies.delete(:token)
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
spree_auth_devise-3.5.1 config/initializers/warden.rb
spree_auth_devise-3.5.0 config/initializers/warden.rb
spree_auth_devise-3.4.2 config/initializers/warden.rb
spree_auth_devise-3.4.1 config/initializers/warden.rb
spree_auth_devise-3.4.0 config/initializers/warden.rb