Sha256: 0f6231e41638d96d9b1cd387883232034ac24f2a7be91208ca90fa9ae0a16711

Contents?: true

Size: 1.42 KB

Versions: 1

Compression:

Stored size: 1.42 KB

Contents

require "lockup/engine"

module Lockup
  extend ActiveSupport::Concern

  included do
    before_filter :check_for_lockup, except: ["unlock"]
  end

  private

  def check_for_lockup
    if lockup_codeword_present?
      if cookies[:lockup].present?
        if cookies[:lockup] == lockup_codeword
          return
        else
          redirect_to lockup.unlock_path(return_to: request.fullpath.split('?lockup_codeword')[0], lockup_codeword: params[:lockup_codeword])
        end
      else
        redirect_to lockup.unlock_path(return_to: request.fullpath.split('?lockup_codeword')[0], lockup_codeword: params[:lockup_codeword])
      end
    end
  end

  def lockup_codeword_present?
    if ENV["LOCKUP_CODEWORD"].present? || ENV["lockup_codeword"].present? || Figaro.env.lockup_codeword.present? || ((Rails::VERSION::MAJOR >= 4 && Rails::VERSION::MINOR >= 1) && Rails.application.secrets.lockup_codeword.present?)
      true
    else
      false
    end
  end

  def lockup_codeword
    if ENV["LOCKUP_CODEWORD"].present?
      ENV["LOCKUP_CODEWORD"].to_s.downcase
    elsif ENV["lockup_codeword"].present?
      ENV["lockup_codeword"].to_s.downcase
    elsif Figaro.env.lockup_codeword.present?
      Figaro.env.lockup_codeword.to_s.downcase
    elsif (Rails::VERSION::MAJOR >= 4 && Rails::VERSION::MINOR >= 1) && Rails.application.secrets.lockup_codeword.present?
      Rails.application.secrets.lockup_codeword.to_s.downcase
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lockup-1.3.2 lib/lockup.rb