public function import(array $groupDefinitions, $force = false)
{
Craft::log(Craft::t('Importing User Groups'));
$this->sectionsByHandle = $this->getSectionsService()->getAllSections('handle');
$this->assetSourceByHandle = $this->getAssetSourcesService()->getAllSources('handle');
$this->globalSetsByHandle = $this->getGlobalsService()->getAllSets('handle');
$userGroups = $this->getUserGroupsService()->getAllGroups('handle');
foreach ($groupDefinitions as $groupHandle => $groupDefinition) {
$group = array_key_exists($groupHandle, $userGroups) ? $userGroups[$groupHandle] : new UserGroupModel();
unset($userGroups[$groupHandle]);
$group->name = $groupDefinition['name'];
$group->handle = $groupHandle;
if (!$this->getUserGroupsService()->saveGroup($group)) {
$this->addErrors($group->getAllErrors());
continue;
}
$permissions = $this->getPermissions($groupDefinition['permissions']);
$this->getUserPermissionsService()->saveGroupPermissions($group->id, $permissions);
}
if ($force) {
foreach ($userGroups as $group) {
$this->getUserGroupsService()->deleteGroupById($group->id);
}
}
return $this->getResultModel();
}