Sha256: 943f47fa690abecb2fa3651a37c22eea381adb7c54ce79442c7ae4c1bff1d511

Contents?: true

Size: 1.25 KB

Versions: 14

Compression:

Stored size: 1.25 KB

Contents

module Doorkeeper
  module OAuth
    module Helpers
      module ScopeChecker
        class Validator
          attr_reader :parsed_scopes, :scope_str

          def initialize(scope_str, server_scopes, application_scopes)
            @parsed_scopes = OAuth::Scopes.from_string(scope_str)
            @scope_str = scope_str
            @valid_scopes = valid_scopes(server_scopes, application_scopes)
          end

          def valid?
            scope_str.present? &&
              scope_str !~ /[\n\r\t]/ &&
              @valid_scopes.has_scopes?(parsed_scopes)
          end

          def match?
            valid? && parsed_scopes.has_scopes?(@valid_scopes)
          end

          private

          def valid_scopes(server_scopes, application_scopes)
            if application_scopes.present?
              application_scopes
            else
              server_scopes
            end
          end
        end

        def self.valid?(scope_str, server_scopes, application_scopes = nil)
          Validator.new(scope_str, server_scopes, application_scopes).valid?
        end

        def self.match?(scope_str, server_scopes, application_scopes = nil)
          Validator.new(scope_str, server_scopes, application_scopes).match?
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
doorkeeper-4.4.3 lib/doorkeeper/oauth/helpers/scope_checker.rb
doorkeeper-4.4.2 lib/doorkeeper/oauth/helpers/scope_checker.rb
doorkeeper-4.4.1 lib/doorkeeper/oauth/helpers/scope_checker.rb
doorkeeper-4.4.0 lib/doorkeeper/oauth/helpers/scope_checker.rb
doorkeeper-4.3.2 lib/doorkeeper/oauth/helpers/scope_checker.rb
doorkeeper-4.3.1 lib/doorkeeper/oauth/helpers/scope_checker.rb
doorkeeper-4.3.0 lib/doorkeeper/oauth/helpers/scope_checker.rb
doorkeeper-4.2.6 lib/doorkeeper/oauth/helpers/scope_checker.rb
doorkeeper-4.2.5 lib/doorkeeper/oauth/helpers/scope_checker.rb
doorkeeper-4.2.0 lib/doorkeeper/oauth/helpers/scope_checker.rb
doorkeeper-4.1.0 lib/doorkeeper/oauth/helpers/scope_checker.rb
doorkeeper-4.0.0 lib/doorkeeper/oauth/helpers/scope_checker.rb
doorkeeper-4.0.0.rc4 lib/doorkeeper/oauth/helpers/scope_checker.rb
doorkeeper-4.0.0.rc3 lib/doorkeeper/oauth/helpers/scope_checker.rb