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