class Spree::UsersController

Public Instance Methods

create() click to toggle source
# File lib/controllers/frontend/spree/users_controller.rb, line 14
def create
  @user = Spree::User.new(user_params)
  if @user.save

    if current_order
      session[:guest_token] = nil
    end

    redirect_back_or_default(root_url)
  else
    render :new
  end
end
show() click to toggle source
# File lib/controllers/frontend/spree/users_controller.rb, line 10
def show
  @orders = @user.orders.complete.order('completed_at desc')
end
update() click to toggle source
# File lib/controllers/frontend/spree/users_controller.rb, line 28
def update
  if @user.update(user_params)
    spree_current_user.reload
    redirect_url = spree.account_url

    if params[:user][:password].present?
      # this logic needed b/c devise wants to log us out after password changes
      if Spree::Auth::Config[:signout_after_password_change]
        redirect_url = spree.login_url
      else
        bypass_sign_in(@user)
      end
    end
    redirect_to redirect_url, notice: I18n.t('spree.account_updated')
  else
    render :edit
  end
end

Private Instance Methods

accurate_title() click to toggle source
# File lib/controllers/frontend/spree/users_controller.rb, line 62
def accurate_title
  I18n.t('spree.my_account')
end
authorize_actions() click to toggle source
# File lib/controllers/frontend/spree/users_controller.rb, line 58
def authorize_actions
  authorize! params[:action].to_sym, Spree::User.new
end
load_object() click to toggle source
# File lib/controllers/frontend/spree/users_controller.rb, line 53
def load_object
  @user ||= Spree::User.find_by(id: spree_current_user&.id)
  authorize! params[:action].to_sym, @user
end
user_params() click to toggle source
# File lib/controllers/frontend/spree/users_controller.rb, line 49
def user_params
  params.require(:user).permit(Spree::PermittedAttributes.user_attributes | [:email])
end