Added new_superior arg to Net::LDAP rename method. This enables moving an entry in the tree by specifying the new parent container in addition to the rename entry functionality. Added a unit test file test_rename.rb for this method.
This commit is contained in:
parent
cc55227083
commit
1761db89e9
2 changed files with 80 additions and 4 deletions
|
@ -1507,16 +1507,19 @@ class Net::LDAP::Connection #:nodoc:
|
|||
#--
|
||||
# TODO: need to support a time limit, in case the server fails to respond.
|
||||
#++
|
||||
def rename(args)
|
||||
def rename args
|
||||
old_dn = args[:olddn] or raise "Unable to rename empty DN"
|
||||
new_rdn = args[:newrdn] or raise "Unable to rename to empty RDN"
|
||||
delete_attrs = args[:delete_attributes] ? true : false
|
||||
new_superior = args[:new_superior]
|
||||
|
||||
request = [old_dn.to_ber, new_rdn.to_ber, delete_attrs.to_ber].to_ber_appsequence(12)
|
||||
pkt = [next_msgid.to_ber, request].to_ber_sequence
|
||||
request = [old_dn.to_ber, new_rdn.to_ber, delete_attrs.to_ber]
|
||||
request << new_superior.to_ber unless new_superior == nil
|
||||
|
||||
pkt = [next_msgid.to_ber, request.to_ber_appsequence(12)].to_ber_sequence
|
||||
@conn.write pkt
|
||||
|
||||
(be = @conn.read_ber(Net::LDAP::AsnSyntax)) && (pdu = Net::LdapPdu.new(be)) && (pdu.app_tag == 13) or raise Net::LDAP::LdapError, "response missing or invalid"
|
||||
(be = @conn.read_ber(AsnSyntax)) && (pdu = LdapPdu.new( be )) && (pdu.app_tag == 13) or raise LdapError.new( "response missing or invalid" )
|
||||
pdu.result_code
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue