Project

General

Profile

« Previous | Next » 

Revision f43a4cb1

Added by Marc Dequènes over 14 years ago

  • ID f43a4cb1f55d9e168f0e458c1af4229e96675767

[evol] recognize 'root' and understand it as value (but not yet as argument), clarify the full handle format, and recognize the MP root

View differences:

lib/ldap_shadows/manipulation_helper.rb
shadow.objects.each do |obj_hdl|
obj_klass = shadow.get_object(obj_hdl)
ldap_classes = obj_klass.required_classes
return obj_hdl if (raw_item.classes & ldap_classes == ldap_classes) and (obj_klass.excluded_classes & raw_item.classes).empty?
ldap_classes = obj_klass.required_classes.sort
item_classes = (raw_item.classes - ['top']).sort
return obj_hdl if (item_classes & ldap_classes == ldap_classes) and (obj_klass.excluded_classes & item_classes).empty?
end
nil
end
def self.raw_item_info(shadow, raw_item, dn = nil)
is_root = false
if raw_item
is_root = true if raw_item.dn == ActiveLdap::Base.base
obj_hdl = self.find_raw_item_object(shadow, raw_item)
if obj_hdl
obj_klass = shadow.get_object(obj_hdl)
item = obj_klass.new(raw_item.dn)
return {:name => item.full_handle, :item => item, :object => obj_klass}
name = item.full_handle
name = "root|" + name if is_root
return {:full_handle => item.full_handle, :name => name, :item => item, :object => obj_klass, :is_root => is_root}
end
item_fake_hdl = raw_item.dn
......
item_fake_hdl = dn || "???"
end
{:name => "unknown/#{item_fake_hdl}"}
{:full_handle => nil, :name => "unknown/#{item_fake_hdl}", :is_root => is_root}
end
def self.interpret_field_value(shadow, syntax, val)
case syntax
when "1.3.6.1.4.1.1466.115.121.1.12"
raw_item = ActiveLdap::Base.find(:first, :base => val.to_s, :scope => :base)
LdapShadows::Manipulation.raw_item_info($shadow, raw_item, val.to_s)[:name]
LdapShadows::Manipulation.raw_item_info($shadow, raw_item, val.to_s)[:full_handle]
else
val
end

Also available in: Unified diff