Module: ActiveLdap::Operations::Update

Defined in:
lib/active_ldap/operations.rb

Instance Method Summary collapse

Instance Method Details

#add_entry(dn, attributes, options = {}) ⇒ Object



578
579
580
581
582
583
584
# File 'lib/active_ldap/operations.rb', line 578

def add_entry(dn, attributes, options={})
  unnormalized_attributes = attributes.collect do |key, value|
    [:add, key, unnormalize_attribute(key, value)]
  end
  options[:connection] ||= connection
  options[:connection].add(dn, unnormalized_attributes, options)
end

#modify_entry(dn, attributes, options = {}) ⇒ Object



586
587
588
589
590
591
592
593
# File 'lib/active_ldap/operations.rb', line 586

def modify_entry(dn, attributes, options={})
  return if attributes.empty?
  unnormalized_attributes = attributes.collect do |type, key, value|
    [type, key, unnormalize_attribute(key, value)]
  end
  options[:connection] ||= connection
  options[:connection].modify(dn, unnormalized_attributes, options)
end

#modify_rdn_entry(dn, new_rdn, delete_old_rdn, new_superior, options = {}) ⇒ Object



595
596
597
598
599
# File 'lib/active_ldap/operations.rb', line 595

def modify_rdn_entry(dn, new_rdn, delete_old_rdn, new_superior, options={})
  options[:connection] ||= connection
  options[:connection].modify_rdn(dn, new_rdn, delete_old_rdn,
                                  new_superior, options)
end

#update_all(attributes, filter = nil, options = {}) ⇒ Object



601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
# File 'lib/active_ldap/operations.rb', line 601

def update_all(attributes, filter=nil, options={})
  search_options = options.dup
  if filter
    if filter.is_a?(String) and /[=\(\)&\|]/ !~ filter
      search_options = search_options.merge(:value => filter)
    else
      search_options = search_options.merge(:filter => filter)
    end
  end
  targets = search(search_options).collect do |dn, attrs|
    dn
  end

  unnormalized_attributes = attributes.collect do |name, value|
    normalized_name, normalized_value = normalize_attribute(name, value)
    [:replace, normalized_name,
     unnormalize_attribute(normalized_name, normalized_value)]
  end
  options[:connection] ||= connection
  conn = options[:connection]
  targets.each do |dn|
    conn.modify(dn, unnormalized_attributes, options)
  end
end