Files
openfoodnetwork/app/controllers/spree/user_sessions_controller.rb
2019-07-05 15:08:42 +01:00

57 lines
1.5 KiB
Ruby

class Spree::UserSessionsController < Devise::SessionsController
helper 'spree/users', 'spree/base', 'spree/store'
if defined?(Spree::Dash)
helper 'spree/analytics'
end
include Spree::Core::ControllerHelpers::Auth
include Spree::Core::ControllerHelpers::Common
include Spree::Core::ControllerHelpers::Order
include Spree::Core::ControllerHelpers::SSL
ssl_required :new, :create, :destroy, :update
ssl_allowed :login_bar
def create
authenticate_spree_user!
if spree_user_signed_in?
respond_to do |format|
format.html {
flash[:success] = Spree.t(:logged_in_succesfully)
redirect_back_or_default(after_sign_in_path_for(spree_current_user))
}
format.js {
render :json => {:user => spree_current_user,
:ship_address => spree_current_user.ship_address,
:bill_address => spree_current_user.bill_address}.to_json
}
end
else
respond_to do |format|
format.html {
flash.now[:error] = t('devise.failure.invalid')
render :new
}
format.js {
render :json => { error: t('devise.failure.invalid') }, status: :unprocessable_entity
}
end
end
end
def nav_bar
render :partial => 'spree/shared/nav_bar'
end
private
def accurate_title
Spree.t(:login)
end
def redirect_back_or_default(default)
redirect_to(session["spree_user_return_to"] || default)
session["spree_user_return_to"] = nil
end
end