Class: Authoreyes::Authorization::AuthorizationRuleSet
- Inherits:
-
Object
- Object
- Authoreyes::Authorization::AuthorizationRuleSet
- Extended by:
- Forwardable
- Includes:
- Enumerable
- Defined in:
- lib/authoreyes/authorization/authorization_rule_set.rb
Instance Method Summary collapse
- #<<(rule) ⇒ Object
- #delete(rule) ⇒ Object
- #each(&block) ⇒ Object
-
#initialize(rules = []) ⇒ AuthorizationRuleSet
constructor
A new instance of AuthorizationRuleSet.
- #initialize_copy(_source) ⇒ Object
- #matching(roles, privileges, context) ⇒ Object
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 |