Create takes a hash of values and creates a row in the database:
'Group' is the "top level" group we're building the cache for. This is an RT::Principal object
'Member' is the RT::Principal of the user or group we're adding to the cache.
'ImmediateParent' is the RT::Principal of the group that this principal belongs to to get here
int(11) 'Via' is an internal reference to CachedGroupMembers->Id of the "parent" record of this cached group member. It should be empty if this member is a "direct" member of this group. (In that case, it will be set to this cached group member's id after creation)
This routine should _only_ be called by GroupMember->Create
Deletes the current CachedGroupMember from the group it's in and cascades the delete to all submembers. This routine could be completely excised if mysql supported foreign keys with cascading deletes.
SetDisableds the current CachedGroupMember from the group it's in and cascades the SetDisabled to all submembers. This routine could be completely excised if mysql supported foreign keys with cascading SetDisableds.
Returns the RT::Principal object for this group Group
Returns the RT::Principal object for this group ImmediateParent
Returns the RT::Principal object for this group member