如何删除ldap3中的用户属性?
How to delete attribute of user in ldap3?
我知道如何修改属性。
c.modify('cn=user1,ou=users,o=company',
{'userWorkstations': [(MODIFY_REPLACE, ['Win-7'])]})
此 link 展示了如何删除条目。
但是如何在 ldap 中删除用户的属性(例如:'userWorkstations'
)?
一个 LDAP 修改请求有多个可以执行的“Modification Types”。
您可以 "ADD" 属性值。
您可以 "DELETE" 属性值。
您可以 "REPLACE" 属性值。
您可以 "INCREMENT" 属性值。 (仅限整数类型)
如果修改类型是“delete”并且有一个没有任何值的属性描述,那么指定属性的所有值将从条目中删除。在正常情况下,修改操作不能与 delete 修改类型一起使用以删除尚不存在的属性(尽管可以使用 "replace" 修改类型来完成此操作)。
精确的编程语言可能 API 简化了这些修改类型。
正如 Giovanni 在评论中所说:
in ldap3: c.modify('cn=user1,ou=users,o=company', {'userWorkstations':
[(MODIFY_DELETE, ['Win-7'])]}) – cannatag Jul 3 '16 at 15:22
我只想指出,在 ldap3 中也有与 LDAP 的 ORM 样式交互,看起来会略有不同:
UserObj.userWorkstations -= 'Win-7'
或者删除该属性,无论它可能具有什么值:
UserObj.userWorkstations.remove()
并在更改后将其提交回 LDAP:
UserObj.entry_commit_changes()
将 UserObj 创建为适合进行这些调用的 Writer 对象留作练习。
我知道如何修改属性。
c.modify('cn=user1,ou=users,o=company',
{'userWorkstations': [(MODIFY_REPLACE, ['Win-7'])]})
此 link 展示了如何删除条目。
但是如何在 ldap 中删除用户的属性(例如:'userWorkstations'
)?
一个 LDAP 修改请求有多个可以执行的“Modification Types”。
您可以 "ADD" 属性值。 您可以 "DELETE" 属性值。 您可以 "REPLACE" 属性值。 您可以 "INCREMENT" 属性值。 (仅限整数类型)
如果修改类型是“delete”并且有一个没有任何值的属性描述,那么指定属性的所有值将从条目中删除。在正常情况下,修改操作不能与 delete 修改类型一起使用以删除尚不存在的属性(尽管可以使用 "replace" 修改类型来完成此操作)。
精确的编程语言可能 API 简化了这些修改类型。
正如 Giovanni 在评论中所说:
in ldap3: c.modify('cn=user1,ou=users,o=company', {'userWorkstations': [(MODIFY_DELETE, ['Win-7'])]}) – cannatag Jul 3 '16 at 15:22
我只想指出,在 ldap3 中也有与 LDAP 的 ORM 样式交互,看起来会略有不同:
UserObj.userWorkstations -= 'Win-7'
或者删除该属性,无论它可能具有什么值:
UserObj.userWorkstations.remove()
并在更改后将其提交回 LDAP: UserObj.entry_commit_changes()
将 UserObj 创建为适合进行这些调用的 Writer 对象留作练习。