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, masarati(a)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