Class: Authoreyes::Authorization::AuthorizationRuleSet

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Enumerable
Defined in:
lib/authoreyes/authorization/authorization_rule_set.rb

Instance Method Summary collapse

Constructor Details

#initialize(rules = []) ⇒ AuthorizationRuleSet

Returns a new instance of AuthorizationRuleSet.



8
9
10
11
# File 'lib/authoreyes/authorization/authorization_rule_set.rb', line 8

def initialize(rules = [])
  @rules = rules.clone
  reset!
end

Instance Method Details

#<<(rule) ⇒ Object



31
32
33
34
# File 'lib/authoreyes/authorization/authorization_rule_set.rb', line 31

def <<(rule)
  @rules << rule
  reset!
end

#delete(rule) ⇒ Object



26
27
28
29
# File 'lib/authoreyes/authorization/authorization_rule_set.rb', line 26

def delete(rule)
  @rules.delete rule
  reset!
end

#each(&block) ⇒ Object



36
37
38
# File 'lib/authoreyes/authorization/authorization_rule_set.rb', line 36

def each(&block)
  @rules.each &block
end

#initialize_copy(_source) ⇒ Object



13
14
15
16
# File 'lib/authoreyes/authorization/authorization_rule_set.rb', line 13

def initialize_copy(_source)
  @rules = @rules.collect(&:clone)
  reset!
end

#matching(roles, privileges, context) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/authoreyes/authorization/authorization_rule_set.rb', line 18

def matching(roles, privileges, context)
  roles = [roles] unless roles.is_a?(Array)
  rules = cached_auth_rules[context] || []
  rules.select do |rule|
    rule.matches? roles, privileges, context
  end
end