Module: Conjur::Policy::Planner

Defined in:
lib/conjur/policy/planner.rb,
lib/conjur/policy/planner/base.rb,
lib/conjur/policy/planner/facts.rb,
lib/conjur/policy/planner/grants.rb,
lib/conjur/policy/planner/record.rb,
lib/conjur/policy/planner/permissions.rb

Defined Under Namespace

Modules: ActsAsRecord Classes: Base, BaseFacts, Deny, Grant, Permit, Policy, PrivilegeFacts, Record, Resource, Revoke, Role, RoleFacts, Webservice

Class Method Summary collapse

Class Method Details

.plan(records, api, plan = nil) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/conjur/policy/planner.rb', line 10

def plan records, api, plan = nil
  plan ||= Plan.new
  plan.tap do |plan|
    Array(records).map{ |record| planner_for(record, api) }.each do |planner|
      planner.plan = plan
      planner.log { %Q(Planning "#{planner.record} using #{planner.class}") }
      begin
        planner.do_plan
        planner.log { "\tFinished \"#{planner.record}\"" }
      ensure
        planner.plan = nil
      end
    end
  end
end

.planner_for(record, api) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/conjur/policy/planner.rb', line 26

def planner_for record, api
  cls = begin
    const_get record.class.name.split("::")[-1]
  rescue NameError
    Record
  end
  cls.new record, api
end