2015-04-12 63 views
0

我使用下面的代碼刪除過程如何使用彈簧templete

​​

}

但使用解除綁定()刪除從LDAP的特定屬性,它會刪除所有的屬性, 但是我想從ldap中只刪除特定的atrribute,就像這個人的角色一樣。

感謝您的幫助。

回答

0

有三種模式:

  • MOD_ADD:這被用於添加的屬性值。如果屬性已經存在(並且模式允許多個值),則新的值將被添加,並且舊值將保持不變。
  • MOD_DELETE:屬性值將被刪除(如果存在)。
  • MOD_REPLACE:給定的屬性值將替換該屬性名稱的所有其他值。換句話說, 屬性的所有舊值都將被刪除,然後這個值將被添加。

你應該使用MOD_REPLACE

>>> mod_attrs = [ (ldap.MOD_DELETE, 'cn','Francis Bacon') ] 
>>> l.modify_s('uid=francis,ou=users,dc=example,dc=com', mod_attrs) 
(103, []) 
>>> 

這將從cn屬性只移除屬性值培根。如果不存在這樣的值,則會引發NO_SUCH_ATTRIBUTE異常。否則,該值將被丟棄。

來源:https://www.packtpub.com/books/content/python-ldap-applications-part-3-more-ldap-operations-and-ldap-url-library

0

如果你不知道字段的值,然後使用無作爲這樣的(@Anouar莫卡塔裏取例子)值:

mod_attrs = [ (ldap.MOD_DELETE, 'cn', None) ] 
l.modify_s('uid=francis,ou=users,dc=example,dc=com', mod_attrs)