private function setReadWritePermissionsFromTemplate(array $ugroup_mapping)
 {
     $template = ProjectManager::instance()->getProject($this->project->getTemplate());
     $template_read_accesses = $this->mediawiki_manager->getReadAccessControl($template);
     $template_write_accesses = $this->mediawiki_manager->getWriteAccessControl($template);
     $this->mediawiki_manager->saveReadAccessControl($this->project, $this->getUgroupsForProjectFromMapping($template_read_accesses, $ugroup_mapping));
     $this->mediawiki_manager->saveWriteAccessControl($this->project, $this->getUgroupsForProjectFromMapping($template_write_accesses, $ugroup_mapping));
 }
 private function seedUGroupMappingFromTemplate(array $ugroup_mapping)
 {
     $template = ProjectManager::instance()->getProject($this->project->getTemplate());
     $mapper = new MediawikiUserGroupsMapper(new MediawikiDao(), new User_ForgeUserGroupPermissionsDao());
     $template_mapping = $mapper->getCurrentUserGroupMapping($template);
     $new_mapping = array();
     foreach ($template_mapping as $mw_group => $tuleap_groups) {
         foreach ($tuleap_groups as $grp) {
             if ($grp < ProjectUGroup::DYNAMIC_UPPER_BOUNDARY) {
                 $new_mapping[$mw_group][] = $grp;
             } elseif (isset($ugroup_mapping[$grp])) {
                 $new_mapping[$mw_group][] = $ugroup_mapping[$grp];
             }
         }
     }
     db_query($this->seedProjectUGroupMappings($this->project->getID(), $new_mapping));
 }