3.0.0
Updated ldapjs to version 3
ldapjs version 3 made a change to the modification property of Change to require an Attribute. For more information reference Error: modification must be an Attribute #859
ldapjs v2:
const change = new ldap.Change({
operation: 'add',
modification: {
pets: ['cat', 'dog']
}
});
ldapjs v3:
const change = new ldap.Change({
operation: 'add',
modification: new Attribute({
type: 'pets',
values: ['cat', 'dog']
})
});
In node-ldapjs-promise v2 the searchReturnAll method was returning the entry.object
result for each entry. In ldapjs v2 they had a .raw
property to get the raw entry, and by returning the entry.object
the entry.raw
was being ignored. The raw property was exposed in release v2.0.2. ldapjs v3 no longer has a .raw
property. Binary can be retrieved by appending ;binary
to the attribute. See issue: corresponding field in v3 of the raw field in v2 #858.
ldapjs v3 SearchResultEntry syntax has changed. It no longer has a .object
property and instead has a .pojo
property. For more information see their release notes: ldapjs v3.0.0 release notes.
Given that previously by returning the .object
property caused the .raw
to be ignored and given that the .pojo
object now looks much like the parent entry object, searchReturnAll returns the base SearchResultEntry and does not assume the user wants the .pojo
property.
Since the .pojo
property no longer provides attributes in an object notation, such as entry.cn
or entry.mail
more work is needed to get the attributes. See entry received on a searchEntry message does not contain object #841 for more information. Attributes can be accessed by entry.attributes
or entry.pojo.attributes
.