Object
# File lib/declarative_authorization/development_support/development_support.rb, line 125 def self.all (engine) rules_by_role = engine.auth_rules.inject({}) do |memo, rule| memo[rule.role] ||= [] memo[rule.role] << rule memo end engine.roles.collect do |role| new(role, (rules_by_role[role] || []). collect {|rule| Rule.new(rule, engine)}, engine) end end
# File lib/declarative_authorization/development_support/development_support.rb, line 136 def self.all_for_privilege (privilege, context, engine) privilege = privilege.is_a?(Symbol) ? Privilege.for_sym(privilege, engine) : privilege privilege_symbols = ([privilege] + privilege.ancestors).map(&:to_sym) all(engine).select {|role| role.rules.any? {|rule| rule.matches?([role.to_sym], privilege_symbols, context)}}. collect {|role| [role] + role.descendants}.flatten.uniq end
ancestors' privileges are included in in the current role
# File lib/declarative_authorization/development_support/development_support.rb, line 95 def ancestors (role_symbol = nil) role_symbol ||= @role (@engine.role_hierarchy[role_symbol] || []). collect {|lower_role| ancestors(lower_role) }.flatten + (role_symbol == @role ? [] : [Role.for_sym(role_symbol, @engine)]) end
# File lib/declarative_authorization/development_support/development_support.rb, line 101 def descendants (role_symbol = nil) role_symbol ||= @role (@engine.rev_role_hierarchy[role_symbol] || []). collect {|higher_role| descendants(higher_role) }.flatten + (role_symbol == @role ? [] : [Role.for_sym(role_symbol, @engine)]) end
# File lib/declarative_authorization/development_support/development_support.rb, line 108 def rules @rules ||= @engine.auth_rules.select {|rule| rule.role == @role}. collect {|rule| Rule.new(rule, @engine)} end
# File lib/declarative_authorization/development_support/development_support.rb, line 112 def rules_for_permission (privilege, context) rules.select do |rule| rule.matches?([@role], [privilege.to_sym], context) end end
# File lib/declarative_authorization/development_support/development_support.rb, line 90 def source_file @rules.empty? ? nil : @rules.first.source_file end
Generated with the Darkfish Rdoc Generator 2.