Sha256: 60428d5e916106507064d01638f3956f70070108e5778b6b750ca3c0f63518b2

Contents?: true

Size: 694 Bytes

Versions: 6

Compression:

Stored size: 694 Bytes

Contents

# frozen_string_literal: true
module Omniauth
  module Rails
    class AuthorizationChecker
      AUTHORIZATION_TYPES = {
        domains: AuthorizationTypes::Domains,
        emails: AuthorizationTypes::Emails,
        regex: AuthorizationTypes::Regex,
      }.freeze

      def initialize(email:, params:)
        @email = email
        @params = params
      end

      def authorized?
        params.map do |key, value|
          raise "Invalid key for authorization constraint" unless AUTHORIZATION_TYPES.key?(key)
          AUTHORIZATION_TYPES[key].new(email: email, value: value).authorized?
        end.all?
      end

      private

      attr_reader :email, :params
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
omniauth-rails-0.6.0 app/models/omniauth/rails/authorization_checker.rb
omniauth-rails-0.5.0 app/models/omniauth/rails/authorization_checker.rb
omniauth-rails-0.4.0 app/models/omniauth/rails/authorization_checker.rb
omniauth-rails-0.3.0 app/models/omniauth/rails/authorization_checker.rb
omniauth-rails-0.2.0 app/models/omniauth/rails/authorization_checker.rb
omniauth-rails-0.1.0 app/models/omniauth/rails/authorization_checker.rb