ACL for Group Nesting
Overview
Improve ACL for Nested (child) groups to set a parent group.
Example use-case
On a single instance, you might need to have 2 groups that are completely independent, say Group A and Group B, with Admin A having ACL permissions on Group A and Admin B having ACL permissions on Group B. This is important because Admin A shouldn't have CRED permissions over contacts in Group B (for example Donors) and same for Admin B over contacts in Group A.
Admin A or B might also need to create sub-groups A1 & A2 or B1 & B2 to send different newsletters (A1 for Donators and A2 for Volunteers) and manage subscription, preventing contact Ax from being removed from Group A but not from Newsletter Group A2.
Admin A or B will want to CRED their 'own' contacts and add/remove them to the sub-groups they manage.
Current behaviour
Admin A can create groups but they won't be considered as nested groups (child or sub-groups) and s.he won't be allowed to see them as nested groups don't inherit ACL.
What shows up right now in the 'Groups Screen':
- Group A (seen by Admin A)
- Sub-group A (not seen by Admin A)
The super Admin has to manually change the ACL to add Sub-group A as a child group for Group A which is not a durable process.
Proposed behaviour
If Admin A has CRED ACL permission over Group A, s.he should be able to CRED sub-groups and manage contacts inside these sub-groups.
Sub-groups should be automatically defined as child groups of the group the admin has ACL permission over. Other way round, a new group should get the parent group set when it's being created
When Admin A has multiple ACL permission, s.he should be able to choose which parent group the new child group has.
What will show up in the 'Groups Screen':
- Group A (seen by Admin A)
- Sub-group A (seen by Admin A)