In Livelink 9.7.1 I am trying to use LAPI SetObjectRight to delele the owner of objects. The following is a sample call that is failing indicating that it cannot find the permission. The following is a sample call
if (documents.SetObjectRight(0, 9999999, 2, -3, 128, 0) == 0)
Where VolumeID is 0; ObjectID is 99999 (i.e. DATAID); Operation is 2 (i.e. "RIGHT_DELETE" ); rightID is -3 (i.e "RIGHT_OWNER") ; subObjects is 0.
This fails because it cannot find the permission in the dtreeacl table. when I check the LAPI logs on the server, I see that it is looking for a record where the RIGHTID is "-3", however, there is no such record. The actual owner record in the DTREEACL table for the object has an ACLTYPE of 1 and a RIGHTID of the actual user.
I notice that when you remove any of the default permissions (i.e. OWNER/OWNER GROUP/PUBLIC) through the web interface, that the records don't actually get deleted, but are instead updated with a rightID value of -3. Accordingly, if you were to remove ALL default permissions, you would end up with 3 DTREEACL records for the Object, each with a RIGHTID value of -3), each with a different value for ACLTYPE. Am I miss-using the SetObjectRight function or is this a bug?