Class Authorization::DevelopmentSupport::AnalyzerEngine::Role
In: lib/declarative_authorization/development_support/development_support.rb
Parent: Object

Methods

Attributes

role  [R] 

Public Class methods

[Source]

     # File lib/declarative_authorization/development_support/development_support.rb, line 125
125:         def self.all (engine)
126:           rules_by_role = engine.auth_rules.inject({}) do |memo, rule|
127:             memo[rule.role] ||= []
128:             memo[rule.role] << rule
129:             memo
130:           end
131:           engine.roles.collect do |role|
132:             new(role, (rules_by_role[role] || []).
133:                   collect {|rule| Rule.new(rule, engine)}, engine)
134:           end
135:         end

[Source]

     # File lib/declarative_authorization/development_support/development_support.rb, line 136
136:         def self.all_for_privilege (privilege, context, engine)
137:           privilege = privilege.is_a?(Symbol) ? Privilege.for_sym(privilege, engine) : privilege
138:           privilege_symbols = ([privilege] + privilege.ancestors).map(&:to_sym)
139:           all(engine).select {|role| role.rules.any? {|rule| rule.matches?([role.to_sym], privilege_symbols, context)}}.
140:               collect {|role| [role] + role.descendants}.flatten.uniq
141:         end

[Source]

     # File lib/declarative_authorization/development_support/development_support.rb, line 121
121:         def self.for_sym (role_sym, engine)
122:           @@role_objects[[role_sym, engine]] ||= new(role_sym, nil, engine)
123:         end

[Source]

    # File lib/declarative_authorization/development_support/development_support.rb, line 81
81:         def initialize (role, rules, engine)
82:           @role = role
83:           @rules = rules
84:           @engine = engine
85:         end

Public Instance methods

ancestors’ privileges are included in in the current role

[Source]

     # File lib/declarative_authorization/development_support/development_support.rb, line 95
 95:         def ancestors (role_symbol = nil)
 96:           role_symbol ||= @role
 97:           (@engine.role_hierarchy[role_symbol] || []).
 98:               collect {|lower_role| ancestors(lower_role) }.flatten +
 99:             (role_symbol == @role ? [] : [Role.for_sym(role_symbol, @engine)])
100:         end

[Source]

     # File lib/declarative_authorization/development_support/development_support.rb, line 101
101:         def descendants (role_symbol = nil)
102:           role_symbol ||= @role
103:           (@engine.rev_role_hierarchy[role_symbol] || []).
104:               collect {|higher_role| descendants(higher_role) }.flatten +
105:             (role_symbol == @role ? [] : [Role.for_sym(role_symbol, @engine)])
106:         end

[Source]

     # File lib/declarative_authorization/development_support/development_support.rb, line 108
108:         def rules
109:           @rules ||= @engine.auth_rules.select {|rule| rule.role == @role}.
110:               collect {|rule| Rule.new(rule, @engine)}
111:         end

[Source]

     # File lib/declarative_authorization/development_support/development_support.rb, line 112
112:         def rules_for_permission (privilege, context)
113:           rules.select do |rule|
114:             rule.matches?([@role], [privilege.to_sym], context)
115:           end
116:         end

[Source]

    # File lib/declarative_authorization/development_support/development_support.rb, line 90
90:         def source_file
91:           @rules.empty? ? nil : @rules.first.source_file
92:         end

[Source]

    # File lib/declarative_authorization/development_support/development_support.rb, line 87
87:         def source_line
88:           @rules.empty? ? nil : @rules.first.source_line
89:         end

[Source]

     # File lib/declarative_authorization/development_support/development_support.rb, line 118
118:         def to_sym
119:           @role
120:         end

[Validate]