From: <mi...@st...> - 2003-04-20 09:55:01
|
Domenico Andreoli wrote: > hi Michael, > > the patch you are referring to is already in the python-ldap version i'm > using and the problem is right in the "modlist.append((ldap.MOD_DELETE,attrtype,None))". > the error i get is from deletion of an inexistent entry. > > i attached an example to reproduce the bug. 1. Note that your code does not work with OpenLDAP 2.1.x since this version does stricter error checking on entry data: ldap.NAMING_VIOLATION: {'info': "naming attribute 'uid' is not present in entry", 'desc': 'Naming violation'} 2. Strictly spoken you are creating an invalid entry with entry = make_entry(None) The attribute value list of attribute 'description' is simply [ None ] which is filtered in modifyModlist() to []. But it means that the attribute is assumed to be existent in the old_entry. Non-existent attributes should not appear in the entry data at all. Note: The diffing in modifyModlist() loops over new_entry.keys(). Whether an attribute is present in old_entry is determined by existence of the attribute type name in the dictionary's keys. Ciao, Michael. |