class Conjur::Policy::IdSubstitutionResolver
Makes all ids absolute, by prepending the namespace (if any) and the enclosing policy (if any).
Public Instance Methods
resolve_field(record, visited)
click to toggle source
# File lib/conjur/policy/resolver.rb, line 98 def resolve_field record, visited if record.respond_to?(:id) && record.respond_to?(:id=) id = record.id if id.blank? raise "#{record.class.simple_name} has no id" unless namespace id = namespace elsif id[0] == '/' id = id[1..-1] else if record.respond_to?(:resource_kind) && record.resource_kind == "user" id = [ id, user_namespace ].compact.join('@') else id = [ namespace, id ].compact.join('/') end end substitute! id record.id = id end traverse record.referenced_records, visited, method(:resolve_field), method(:on_resolve_policy) end
Protected Instance Methods
user_namespace()
click to toggle source
# File lib/conjur/policy/resolver.rb, line 124 def user_namespace namespace.gsub('/', '-') if namespace end