[英]How can I pass in an attribute dynamically when modifying a user with ldapJS
我正在使用ldapjs ,我正在尝试配置我自己的 API 来修改/更新 LDAP 目录,它工作正常,除非我想修改一个帐户,例如
var change = new ldap.Change({
operation: 'replace',
modification: {
company: 'Company Name'
}
});
client.modify('cn=foo, o=example', change, function(err) {
assert.ifError(err);
});
我发现不可能动态传递实际属性“公司”(或我需要更改的任何内容),我试过:
var attr = "company";
var value = "Company Name";
var change = new ldap.Change({
operation: 'replace',
modification: {attr:value}
})
但我得到-
修改用户时出错:NoSuchAttribute
我也试过它作为一个字符串:
var attr = "company";
var value = "Company Name";
var modification = "{ " + attr + ":" + value + "}";
var change = new ldap.Change({
operation: 'replace',
modification
})
但我得到:
Error('每次更改只允许一个属性');
我不是那么有经验,所以不确定这是否可能?
是的,这是可能的,您只需将代码更改为
const someCompany = 'someComapny'
var change = new ldap.Change({
operation: 'replace',
modification: {company:someCompany}
})
如果您希望公司属性是动态的,您应该使用这样的计算属性语法
const someCompany = 'someComapny'
const companyKey = 'key'
var change = new ldap.Change({
operation: 'replace',
modification: {[companyKey]:someCompany}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.