Forum OpenACS Q&A: Response to Groups API in 4.x

Collapse
Posted by Dan Wickstrom on
The first thing you need to understand is the type hierarchy.  In acs 4.x, the type hierarchy is as follows:
<p>
<pre>
acs_object_type
  party
    group
    person
      user
</pre>
In the acs 4.x groups system, the relation to a group is represented by the party object regardless of whether the relation is between a group and a person or a group and another group.  The implication of this is that a person or another group can be a member in a group.
<p>
As far as relationships, composition or membership relations determine whether memberships are transitive.  If you have a membership relation with group A and group A has a composition relation with group B, then you are also considered to be a member of B.  Group A is like a sub-grouping of group B in this case.
<p>
On the other hand, if you have a memberhip relation with group A, and group A has a membership relation with group B, you are not then considered a member of B.  composition relations are transitive while membership relations are not.