Propose to change permission query from IN to =
Currently the extension takes into account child groups of the domain group. I can see that making sense for traditional ACL's but does this make sense for how this extension is used? Is there use cases I am not thinking of?
Each domain on a multisite has a domain group you put the contacts into. Then say we have chapters underneath that domain group. A contact is going to be in both the domain group and the child group. Seems redundant and inefficient.
I've removed various other groups from being child groups of the domain group (as the contacts are already in the domain group) and instead associated them with the domain organization, which allows those groups to be selected for instance in the CiviMail recipient selection.
LEFT JOIN civicrm_group_contact multisiteGroupTable ON contact_a.id = multisiteGroupTable.contact_id
WHERE ((multisiteGroupTable.group_id IN (36,138,332) AND multisiteGroupTable.status IN ('Added') AND contact_a.is_deleted = 0) OR permrelationships.contact_id IS NOT NULL ) AND (contact_a.is_deleted = 0);
This comes from https://lab.civicrm.org/extensions/multisite/-/blob/master/multisite.php#L304
Is there a potential performance improvement from moving from IN to = SQL query?