Sha256: 14265e65db40dd43dbc66ae7ad493824081b638d83d46aff2a616b5df16d2dba

Contents?: true

Size: 1008 Bytes

Versions: 4

Compression:

Stored size: 1008 Bytes

Contents

# frozen_string_literal: true

require 'active_support/concern'

module BetterRecord
  module Sessionable
    extend ActiveSupport::Concern
    include BetterRecord::JWT::ControllerMethods

    included do
      skip_before_action :check_user, raise: false
    end

    def new
      session[:referrer] ||= request.referrer
      p session[:referrer], request.referrer
      if (header_hash = request.headers.to_h.deep_symbolize_keys)[:HTTP_X_SSL_CERT].present?
        create_session_from_certificate(header_hash[:HTTP_X_SSL_CERT])
        redirect_to (session.delete(:referrer) || __send__(after_login_path) || root_path)
      end
    end

    def create
      if(user = session_class.__send__(session_authenticate_method, params))
        session[:better_record] = create_jwt(user)
      end
      respond_to do |format|
        format.json
        format.html do
          return redirect_to (session.delete(:referrer) || __send__(after_login_path) || root_path)
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
better_record-0.8.4 lib/better_record/concerns/controllers/sessionable.rb
better_record-0.8.3 lib/better_record/concerns/controllers/sessionable.rb
better_record-0.8.2 lib/better_record/concerns/controllers/sessionable.rb
better_record-0.8.1 lib/better_record/concerns/controllers/sessionable.rb