class Authorization::DevelopmentSupport::AnalyzerEngine::Role
Attributes
role[R]
Public Class Methods
all(engine)
click to toggle source
# 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
all_for_privilege(privilege, context, engine)
click to toggle source
# 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
for_sym(role_sym, engine)
click to toggle source
# File lib/declarative_authorization/development_support/development_support.rb, line 121 def self.for_sym (role_sym, engine) @@role_objects[[role_sym, engine]] ||= new(role_sym, nil, engine) end
new(role, rules, engine)
click to toggle source
# File lib/declarative_authorization/development_support/development_support.rb, line 81 def initialize (role, rules, engine) @role = role @rules = rules @engine = engine end
Public Instance Methods
ancestors(role_symbol = nil)
click to toggle source
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
descendants(role_symbol = nil)
click to toggle source
# 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
rules()
click to toggle source
# 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
rules_for_permission(privilege, context)
click to toggle source
# 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
source_file()
click to toggle source
# File lib/declarative_authorization/development_support/development_support.rb, line 90 def source_file @rules.empty? ? nil : @rules.first.source_file end
source_line()
click to toggle source
# File lib/declarative_authorization/development_support/development_support.rb, line 87 def source_line @rules.empty? ? nil : @rules.first.source_line end
to_sym()
click to toggle source
# File lib/declarative_authorization/development_support/development_support.rb, line 118 def to_sym @role end