if p_cascade_membership is true the implementation is a simple select against the group_member_map view - this considers membership_rel and all it's descendant rel_types as creating "membership" relationships by using the ancestor_rel_type column from group_element_index...
if p_cascade_membership is not true, it does a direct select against acs_rels and all_object_party_privilege_map... this will only return true for membership_rel relationships, but not for any descendant type of a membership_rel ("and rels.rel_type = 'membership_rel'")... also, the join against all_object_party_privilege_map doesn't seem to serve any purpose (it will allow a membership_rel to be considered as long as anybody has the 'read' privilege on it - the sitewide admin for example)...
is this broken, or is it my understanding of what should be happening here that's wrong?
I'm just starting a project that will depend on complex group/group relationships and custom rel_types in order to work... and I'm really hoping it all works at least vaguely as documented...
Request notifications