Sha256: 6568c5ff2da20a9841e8198ee2b33e6287e5da1f97ef78eb99a93ee471da8321

Contents?: true

Size: 950 Bytes

Versions: 1

Compression:

Stored size: 950 Bytes

Contents

class DiscoApp::UserSessionsController < ApplicationController
  include DiscoApp::Concerns::AuthenticatedController

  def new
  end

  def create
    authenticate
  end

  def callback
    if auth_hash
      login_user
      redirect_to return_address
    else
      redirect_to root_path
    end
  end

  def destroy
    session[:shopify_user] = nil
    redirect_to root_path
  end

  protected

    def associated_user(auth_hash)
      auth_hash['extra']['associated_user']
    end

    def authenticate
      if sanitized_shop_name.present?
        fullpage_redirect_to "#{main_app.root_path}auth/shopify_user?shop=#{@shop.shopify_domain}"
      else
        redirect_to return_address
      end
    end

    def login_user
      @user = DiscoApp::User.create_from_auth(associated_user(auth_hash), @shop)
      session[:shopify_user] = @user.id
    end

    def return_address
      session.delete(:return_to) || main_app.root_url
    end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
disco_app-0.13.0 app/controllers/disco_app/user_sessions_controller.rb