mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
57 lines
1.5 KiB
Ruby
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
|