Sha256: 9e59562ef5bb0a806c68ee3b365732ed38a5116490680f13ea4655fe3b7e8d6c

Contents?: true

Size: 938 Bytes

Versions: 1

Compression:

Stored size: 938 Bytes

Contents

module SimpleAdminAuth
  def self.authenticate &block
    constraints(Authenticate) do
      yield
    end
  end

  class Authenticate
    def self.matches?(request)
      if is_admin?(request.session)
        true
      else
        request.session[:admin_login_return_url] = request.url
        raise RedirectException.new('/auth/admin/login')
      end
    end

    def self.is_admin?(session)
      valid_admin = false
      if !session[:admin_user].nil? && !session[:admin_user][:email].nil?
        email = session[:admin_user][:email]
        if !SimpleAdminAuth::Configuration.email_white_list.nil?
          if SimpleAdminAuth::Configuration.email_white_list.include?(email)
            valid_admin = true
          end
        else
          valid_admin = true
        end
      end
      valid_admin
    end
  end


  class Unauthenticated
    def self.matches?(request)
      !Authenticated.matches?(request)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simple_admin_auth-0.1.1 lib/simple_admin_auth/authenticated.rb