Revision bbe89518
Added by Marc Dequènes over 14 years ago
- ID bbe8951879f7c0b7b74df85f94c7de5b712cf78c
lib/ldap_shadows/elements/object.rb | ||
---|---|---|
end
|
||
|
||
def organized_data
|
||
ignored_attrs = self.class.shadow.get_shadow_config[:hidden_attributes] || []
|
||
ignored_attrs = self.class.shadow.get_config[:presentation][:hidden_attributes] || []
|
||
ignored_attrs += self.class.presentation[:hidden_attributes] || []
|
||
attr_list = self.nonempty_attributes - ignored_attrs
|
||
|
||
... | ... | |
true
|
||
end
|
||
|
||
def self.items_find_from_strings(str_list)
|
||
def self.items_find_from_strings(shadow, str_list)
|
||
ldap_search_objects = "(objectClass=*)"
|
||
ldap_search_aspects = ""
|
||
ldap_search_fields = []
|
||
... | ... | |
when ''
|
||
case field
|
||
when 'objects'
|
||
ldap_search_objects = ldap_search_string_objects(field, op, val)
|
||
ldap_search_objects = ldap_search_string_objects(shadow, field, op, val)
|
||
when 'aspects'
|
||
ldap_search_aspects = ldap_search_string_aspects(field, op, val)
|
||
ldap_search_aspects = ldap_search_string_aspects(shadow, field, op, val)
|
||
else
|
||
raise PreProcessingError, _("Unknown core field '%s'") % field
|
||
end
|
||
... | ... | |
end
|
||
end
|
||
|
||
def self.ldap_search_string_objects(field, op, val_list)
|
||
def self.ldap_search_string_objects(shadow, field, op, val_list)
|
||
ldap_search_parts = val_list.split(",").collect do |val|
|
||
obj_hdl = val.downcase.singularize
|
||
obj_klass = $ldapctl.find_klass(obj_hdl)
|
||
obj_klass = shadow.find_klass(obj_hdl)
|
||
raise PreProcessingError, _("No such object '%s'") % val if obj_klass.nil?
|
||
|
||
ldap_classes = obj_klass.required_classes
|
||
... | ... | |
"(|" + ldap_search_parts.join + ")"
|
||
end
|
||
|
||
def self.ldap_search_string_aspects(field, op, val_list)
|
||
def self.ldap_search_string_aspects(shadow, field, op, val_list)
|
||
ldap_search_parts = val_list.split(",").collect do |val|
|
||
aspect_data = self.class.shadow.get_aspect(val)
|
||
aspect_data = shadow.get_aspect(val)
|
||
raise PreProcessingError, _("No such aspect '%s'") % val if aspect_data.nil?
|
||
|
||
ldap_classes = aspect_data[:mapping][:classes]
|
||
... | ... | |
"(&" + ldap_search_parts.join + ")"
|
||
end
|
||
|
||
def self.find_raw_item_object(raw_item)
|
||
self.class.shadow.objects.each do |obj_hdl|
|
||
obj_klass = $ldapctl.find_klass(obj_hdl)
|
||
def self.find_raw_item_object(shadow, raw_item)
|
||
shadow.objects.each do |obj_hdl|
|
||
obj_klass = shadow.find_klass(obj_hdl)
|
||
ldap_classes = obj_klass.required_classes
|
||
return obj_hdl if raw_item.classes & ldap_classes == ldap_classes
|
||
end
|
||
nil
|
||
end
|
||
|
||
def self.raw_item_info(raw_item)
|
||
obj_hdl = self.find_raw_item_object(raw_item)
|
||
def self.raw_item_info(shadow, raw_item)
|
||
obj_hdl = self.find_raw_item_object(shadow, raw_item)
|
||
if obj_hdl
|
||
obj_klass = $ldapctl.find_klass(obj_hdl)
|
||
obj_klass = shadow.find_klass(obj_hdl)
|
||
item = obj_klass.new(raw_item.dn)
|
||
{:name => "#{obj_hdl}/#{item.name}", :item => item, :object => obj_klass}
|
||
else
|
Also available in: Unified diff
[cleanup] internal rework #1