On May 26, 2010, at 11:10 PM, Howard Chu wrote: > Ludovic Poitou wrote: >> Are you really trying to achieve a MOD_ADD_IF_NOT_PRESENT or don't fail > adding an attribute or value if the value is already present ? >> >> MS AD has a PERMISSIVE MODIFY CONTROL that remove the ADD/DELETE >> constraints > on the attributes and values, so that adding an attribute that exist will > succeed but do nothing and similarly deleting an attribute or value that is > not present succeed. > > Funny you should mention that. We support this control as well.
I've just added support for this control in OpenDS as well. > I didn't get the impression that that was the goal here. It sounded to me > like "add this value unless *any* value is present" not "add this value if > *this value* is not present"... Ok, I haven't paid too much attention at the full thread. But, personally I would be reluctant to extend the protocol (modification types) to cover use cases that are very close to existing solutions. But hey, OpenLDAP is not my product / project ;-) Regards, Ludo > >> My 2 cents. >> >> Ludovic. >> >> >> >> >> On May 26, 2010, at 3:53 PM, masar...@aero.polimi.it wrote: >> >>>>> I need to implement a modify operation whose semantics is "add if not >>>>> present", an add that only takes place if that attribute is not yet >>>>> present in the entry. >>>>> >>>>> I need it as an internal operation, so right now I wouldn't bother >>>>> formalizing it as an extension of the semantics of the modify operation. >>>>> Something like the SLAP_MOD_SOFTADD, which in turn consists in adding an >>>>> attribute value only if that value is not already present. >>>>> >>>>> I'd introduce a SLAP_MOD_ADD_IF_NOT_PRESENT flag and add code to support >>>>> it in all (well, most) backends/overlays that need to muck with modify >>>>> operation type. >>>>> >>>>> Comments? Objections? p. >>>> >>>> It might be a good idea to have a SOFTDEL as well; both are useful for >>>> declarative modifications of data. Think of them in terms of: >>>> >>>> Soft Add: The attribute shall contain at least these values, but might >>>> have others >>>> Soft Del: The attribute shall contain none of these values, but might have >>>> others >>>> >>>> Ideally as modify sub-operations. >>> >>> I'm not sure I understand how SOFTDEL differs from LDAP_MOD_DELETE. Do >>> you mean that values listed in SOFTDEL will be deleted if they exist, or >>> otherwise ignored? >>> >>> p. >>> >> >> --- >> Ludovic Poitou Sun Microsystems Inc. >> OpenDS Community Manager Directory Services >> http://blogs.sun.com/Ludo/ Grenoble Engineering Center - France >> >> OpenDS, the Java LDAP Directory Server >> http://www.opends.org >> >> >> >> > > > -- > -- Howard Chu > CTO, Symas Corp. http://www.symas.com > Director, Highland Sun http://highlandsun.com/hyc/ > Chief Architect, OpenLDAP http://www.openldap.org/project/ --- Ludovic Poitou Sun Microsystems Inc. OpenDS Community Manager Directory Services http://blogs.sun.com/Ludo/ Grenoble Engineering Center - France OpenDS, the Java LDAP Directory Server http://www.opends.org