0

我正在使用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('每个更改只允许一个属性');

我不是那么有经验,所以不确定这是否可能?

4

1 回答 1

0

是的,这是可能的,您只需将代码更改为

  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}
   })
于 2020-05-27T19:58:41.147 回答