module ActiveLdap::Persistence

def update

def update
  prepare_data_for_saving do |data, ldap_data|
    new_dn_value, attributes = collect_modified_attributes(ldap_data, data)
    modify_entry(@original_dn, attributes)
    if new_dn_value
      old_dn_base = DN.parse(@original_dn).parent
      new_dn_base = dn.clone.parent
      if old_dn_base == new_dn_base
        new_superior = nil
      else
        new_superior = new_dn_base.to_s
      end
      modify_rdn_entry(@original_dn,
                       "#{dn_attribute}=#{DN.escape_value(new_dn_value)}",
                       true,
                       new_superior)
    end
    true
  end
end