# File lib/declarative_authorization/authorization.rb, line 369 def initialize (rules = []) @rules = rules.clone reset! end
# File lib/declarative_authorization/authorization.rb, line 390 def << rule @rules << rule reset! end
# File lib/declarative_authorization/authorization.rb, line 386 def delete rule @rules.delete rule reset! end
# File lib/declarative_authorization/authorization.rb, line 394 def each &block @rules.each &block end
# File lib/declarative_authorization/authorization.rb, line 374 def initialize_copy (source) @rules = @rules.collect {|rule| rule.clone} reset! end
# File lib/declarative_authorization/authorization.rb, line 379 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
# File lib/declarative_authorization/authorization.rb, line 402 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
# File lib/declarative_authorization/authorization.rb, line 399 def reset! @cached_auth_rules =nil end