class Authoreyes::Authorization::AuthorizationRuleSet
Public Class Methods
new(rules = [])
click to toggle source
# File lib/authoreyes/authorization/authorization_rule_set.rb, line 8 def initialize(rules = []) @rules = rules.clone reset! end
Public Instance Methods
<<(rule)
click to toggle source
# File lib/authoreyes/authorization/authorization_rule_set.rb, line 31 def <<(rule) @rules << rule reset! end
delete(rule)
click to toggle source
# File lib/authoreyes/authorization/authorization_rule_set.rb, line 26 def delete(rule) @rules.delete rule reset! end
each(&block)
click to toggle source
# File lib/authoreyes/authorization/authorization_rule_set.rb, line 36 def each(&block) @rules.each &block end
initialize_copy(_source)
click to toggle source
# File lib/authoreyes/authorization/authorization_rule_set.rb, line 13 def initialize_copy(_source) @rules = @rules.collect(&:clone) reset! end
matching(roles, privileges, context)
click to toggle source
# 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
Private Instance Methods
cached_auth_rules()
click to toggle source
# File lib/authoreyes/authorization/authorization_rule_set.rb, line 46 def cached_auth_rules return @cached_auth_rules if @cached_auth_rules @cached_auth_rules = {} @rules.each do |rule| rule.contexts.each do |context| @cached_auth_rules[context] ||= [] @cached_auth_rules[context] << rule end end @cached_auth_rules end
reset!()
click to toggle source
# File lib/authoreyes/authorization/authorization_rule_set.rb, line 42 def reset! @cached_auth_rules = nil end