This is done via XML files:
<?xml version="1.0" encoding="UTF-8"?> <view:view xmlns:view="http://www.alfresco.org/view/repository/1.0" xmlns:cm="http://www.alfresco.org/model/content/1.0"> <view:reference view:pathref="${system.authorities_container.childname}/cm:GROUP_Knowledge_x0020_Base_x0020_Consumers"> <view:associations> <cm:member> <view:reference view:pathref="${system.people_container.childname}/cm:admin" view:childName="cm:admin" /> </cm:member> <cm:member> <view:reference view:pathref="${system.people_container.childname}/cm:alftest1" view:childName="cm:alftest1" /> </cm:member> </view:associations> </view:reference> <view:reference view:pathref="${system.authorities_container.childname}/cm:GROUP_Knowledge_x0020_Base_x0020_Coordinators"> <view:associations> <cm:member> <view:reference view:pathref="${system.people_container.childname}/cm:admin" view:childName="cm:admin" /> </cm:member> <cm:member> <view:reference view:pathref="${system.people_container.childname}/cm:alftest2" view:childName="cm:alftest2" /> </cm:member> </view:associations> </view:reference> </view:view>
We add the admin user, which we get out-of-the-box, and the two users we bootstrapped previously. We can store this XML file as part of the Repository JAR module extension project in a file name such as import-group-memberships.xml.
The group membership XML file can be loaded via a Spring bean configuration as follows:
<beanid="org.alfresco.tutorial.bootstrap.patch.groupMembershipsLoader"class="org.alfresco.repo.admin.patch.impl.GenericBootstrapPatch"parent="basePatch" > <property name="id"><value>org.alfresco.tutorial.bootstrap.patch.groupMembershipsLoader</value></property> <property name="description"><value>org.alfresco.tutorial.bootstrap.patch.groupMembershipsLoader.description</value></property> <property name="fixesFromSchema"><value>0</value></property> <property name="fixesToSchema"><value>${version.schema}</value></property> <property name="targetSchema"><value>99999</value></property> <property name="dependsOn" > <list> <ref bean="org.alfresco.tutorial.bootstrap.patch.groupsLoader" /> <ref bean="org.alfresco.tutorial.bootstrap.patch.userProfilesLoader" /> <ref bean="org.alfresco.tutorial.bootstrap.patch.usersLoader" /> </list> </property> <property name="importerBootstrap"> <ref bean="spacesBootstrap" /> </property> <property name="bootstrapView"> <props> <prop key="path">/${system.system_container.childname}</prop> <prop key="location">alfresco/module/bootstrap-content-repo/bootstrap/import-group-memberships.xml</prop> </props> </property> </bean>
Note how it depends on the beans that loads the users and groups.
The id and description properties for the group loading should be specified in a message resource file as follows:
org.alfresco.tutorial.bootstrap.patch.groupsLoader=Load Groups org.alfresco.tutorial.bootstrap.patch.groupsLoader.description=Bootstraps groups KB Consumer and KB Coordinator org.alfresco.tutorial.bootstrap.patch.groupMembershipsLoader=Load Group Memberships org.alfresco.tutorial.bootstrap.patch.groupMembershipsLoader.description=Loads the groups KB Consumer and KB Coordinator with 2 users