Sha256: e8fd16a9e4677a7f3cee8c5c7f0c9f3116694c712f6a01bd253bc51b0f162b44

Contents?: true

Size: 734 Bytes

Versions: 2

Compression:

Stored size: 734 Bytes

Contents

# -*- encoding : utf-8 -*-
module VersacommerceApp::EnsureApiSession
  extend ActiveSupport::Concern
  
  included do
    rescue_from ActiveResource::UnauthorizedAccess, :with => :close_session
  end
  
  def ensure_current_api_session
    if session[:versacommerce]
      begin
        VersacommerceAPI::Base.activate_session(session[:versacommerce])
        yield
      ensure 
        VersacommerceAPI::Base.clear_session
      end
    else
      session[:return_to] = request.fullpath if request.get?
      redirect_to login_path(shop: params[:shop])
    end
  end
  
  def current_shop
    session[:versacommerce]
  end
  
  protected
  
  def close_session
    session[:versacommerce] = nil
    redirect_to login_path
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
versacommerce_app-1.0.26 lib/versacommerce_app/ensure_api_session.rb
versacommerce_app-1.0.25 lib/versacommerce_app/ensure_api_session.rb