This is still a work in progress. It's incomplete and should not be followed right now.
For this example, let's say you have a hierarchical organization structure with MyBigOrg at the top, MyStateOrg1, MyStateOrg2, and MyStateOrg3 underneath that. Adjust for your structure as appropriate.
- Start with the multi-site installation instructions. That will create a CiviCRM installation that can accommodate more than one organization in the same database.
- Connect to mybigorg.org/civicrm and setup your first user account. This will be your multi-site admin user, able to do everything everywhere (maybe?). This step will automatically create a new group called MyBigOrg.
- See what the ID of the master group for MyBigOrg is. Click Contacts, then Manage Groups. For this example, let's say I see ID 2 next to the MyBigOrg group (which was automatically created by the system).
- Create an organization contact called MyBigOrg, and write down the ID of the new contact (you'll see it at the bottom of the page after you click Save). For this example, let's say the ID of MyBigOrg's organization contact is 4.
- Associate these two entities with each other by going to Contacts -> Manage Groups. Then click Settings for the MyBigOrg group. Under Associated Organization start typing "MyBigOrg" and then select it from the list that eventually pops up, but DO NOT PRESS ENTER(that will submit the form w/o creating the association).
Add these 2 lines to the sites/default/civicrm.settings.php file (or modify them if they're already there):
define( 'CIVICRM_DOMAIN_GROUP_ID', 2 );
define( 'CIVICRM_DOMAIN_ORG_ID', 4 );
- Create the sub-org records
- Add 3 new groups called MyStateOrg1-3
- Create 3 new organization contacts called MyStateOrg1-3
- Associate all these pairs of entities with each other like you did for the top-level group and org contact above.
- Setup permissioning on the groups
- TODO: Fill in the steps for setting up the ACLs, roles, etc.
- Contacts created by a user with permission only on the MyStateOrg1 group will automatically be placed in the MyStateOrg1 group