Sha256: 2c9a4f31e5b87ca6533ee5280fb7484c0ebb4d4a904ab2295c46e3d14fe390ab

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

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 auth_hash
      request.env['omniauth.auth']
    end

    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=#{sanitized_shop_name}"
      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

    def sanitized_shop_name
      @shop.shopify_domain
    end

end

Version data entries

1 entries across 1 versions & 1 rubygems

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