<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Le 30/11/2015 13:10, Benjamin Dauvergne a écrit :<br>
    <span style="white-space: pre;">> Le 11/30, <a class="moz-txt-link-abbreviated" href="mailto:mh@ow2.org">mh@ow2.org</a> a écrit :
>> Hi,
>> 
>> In the following code,
>> 
>> old = {'attr':['oldvalue']} new = {'attr':['newvalue']}
>> 
>> mod = modlist.modifyModlist(old,new)
>> 
>> l.modify_s(dn,mod)
>> 
>> 
>> I'm not sure to fully understand the documentation ; it seems the
>> new attribute value is modified in all case - whatever the value
>> stored in old attr ; in this case what's the point in specifying an
>> 'oldvalue' ?

> As LDAP is a multivalued database i.e. each attribute can have
> multiple values, what's computed by modifyModlist is a "diff": remove
> old values, add new values. If you want to keep some old values
> because for example the schema forbid a value to be missing (and
> between the DELETE and the ADD there will be a time where no value is
> defined) you have create your modlist yourself such as:

> l.modify_s(dn, [(ldap.MOD_REPLACE, attr, ['newvalue'])])

> modlist.modifyModlist is just an helper function to build such change
> lists, possible value for the action are: - ldap.MOD_ADD -
> ldap.MOD_DELETE - ldap.MOD_REPLACE - ldap.MOD_INCREMENT
> </span><br>
    <br>
    Thank you Michael and Benjamin, I think I got it.<br>
    <br>
    Let met reformulate what I've understood : the helper is only here
    to compare what's in dicts and build a diff list intended to be
    passed to modify() - it never gets compared values by accessing the
    LDAP directory straight (I stumbled on that).<br>
    <br>
    So if I need to get the attribute value from the directory *before*
    updating it, I would need to use compare() isn't ?<br>
    <br>
    A side question : when I print str(mod), I see the constant value as
    number : is there a way to see that constant as constant name  ?(ie
    : MOD_XXX) <br>
    <br>
    Cheers<br>
    <br>
  </body>
</html>