class PactBroker::Api::Authorization::ResourceAccessRules

Constants

PATH_INFO
REQUEST_METHOD

Attributes

rules[R]

Public Class Methods

new(rules) click to toggle source
# File lib/pact_broker/api/authorization/resource_access_rules.rb, line 10
def initialize(rules)
  @rules = rules
end

Public Instance Methods

access_allowed?(env, level) click to toggle source
# File lib/pact_broker/api/authorization/resource_access_rules.rb, line 14
def access_allowed?(env, level)
  !!rules.find do | rule_level, allowed_methods, path_pattern |
    level_allowed?(level, rule_level) &&
      method_allowed?(env, allowed_methods) &&
      path_allowed?(env, path_pattern)
  end
end

Private Instance Methods

level_allowed?(level, rule_level) click to toggle source
# File lib/pact_broker/api/authorization/resource_access_rules.rb, line 26
def level_allowed?(level, rule_level)
  level >= rule_level
end
method_allowed?(env, allowed_methods) click to toggle source
# File lib/pact_broker/api/authorization/resource_access_rules.rb, line 34
def method_allowed?(env, allowed_methods)
  allowed_methods.include?(env[REQUEST_METHOD])
end
path_allowed?(env, pattern) click to toggle source
# File lib/pact_broker/api/authorization/resource_access_rules.rb, line 30
def path_allowed?(env, pattern)
  env[PATH_INFO] =~ pattern
end