This commit is contained in:
2026-08-20 14:34:28 +05:00
parent e0683cb9cb
commit 67aef9c5ff
2 changed files with 64 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
'use strict';
const fs = require('fs');
require('./patch-ldap-dn');
const ldap = require('ldapjs');
const config = require('./config');
@@ -208,13 +209,30 @@ function entryToObject(entry) {
function addEntry(client, dn, attributes) {
return new Promise((resolve, reject) => {
client.add(dn, attributes, (err) => (err ? reject(mapLdapError(err)) : resolve()));
const entry = {};
for (const a of attributes || []) {
entry[a.attr] = a.vals;
}
client.add(dn, entry, (err) => (err ? reject(mapLdapError(err)) : resolve()));
});
}
function normalizeChange(change) {
const mod = change.modification || {};
const key = Object.keys(mod)[0];
const values = mod[key];
return {
operation: change.operation,
modification: {
type: key,
values: Array.isArray(values) ? values : [values]
}
};
}
function modifyEntry(client, dn, changes) {
return new Promise((resolve, reject) => {
client.modify(dn, changes, (err) => (err ? reject(mapLdapError(err)) : resolve()));
client.modify(dn, (changes || []).map(normalizeChange), (err) => (err ? reject(mapLdapError(err)) : resolve()));
});
}