class Authorization::DevelopmentSupport::AnalyzerEngine::Privilege

Public Class Methods

for_sym(privilege_sym, engine) click to toggle source
# File lib/declarative_authorization/development_support/development_support.rb, line 197
def self.for_sym (privilege_sym, engine)
  @@privilege_objects[[privilege_sym, engine]] ||= new(privilege_sym, engine)
end
new(privilege, engine) click to toggle source
# File lib/declarative_authorization/development_support/development_support.rb, line 162
def initialize (privilege, engine)
  @privilege = privilege
  @engine = engine
end

Public Instance Methods

ancestors(priv_symbol = nil) click to toggle source

Ancestor privileges are higher in the hierarchy. Doesn't take context into account.

# File lib/declarative_authorization/development_support/development_support.rb, line 169
def ancestors (priv_symbol = nil)
  priv_symbol ||= @privilege
  # context-specific?
  (@engine.rev_priv_hierarchy[[priv_symbol, nil]] || []).
      collect {|higher_priv| ancestors(higher_priv) }.flatten +
    (priv_symbol == @privilege ? [] : [Privilege.for_sym(priv_symbol, @engine)])
end
descendants(priv_symbol = nil) click to toggle source
# File lib/declarative_authorization/development_support/development_support.rb, line 176
def descendants (priv_symbol = nil)
  priv_symbol ||= @privilege
  # context-specific?
  (@engine.privilege_hierarchy[priv_symbol] || []).
      collect {|lower_priv, context| descendants(lower_priv) }.flatten +
    (priv_symbol == @privilege ? [] : [Privilege.for_sym(priv_symbol, @engine)])
end
rules() click to toggle source
# File lib/declarative_authorization/development_support/development_support.rb, line 184
def rules
  @rules ||= find_rules_for_privilege
end
source_file() click to toggle source
# File lib/declarative_authorization/development_support/development_support.rb, line 190
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 187
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 194
def to_sym
  @privilege
end

Private Instance Methods

find_rules_for_privilege() click to toggle source
# File lib/declarative_authorization/development_support/development_support.rb, line 202
def find_rules_for_privilege
  @engine.auth_rules.select {|rule| rule.privileges.include?(@privilege)}.
      collect {|rule| Rule.for_rule(rule, @engine)}
end