Skip to content

3.0.0

Compare
Choose a tag to compare
@wslyhbb wslyhbb released this 24 Mar 01:04
· 12 commits to master since this release

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.