/
localgov_microsites_group.install
98 lines (86 loc) · 2.93 KB
/
localgov_microsites_group.install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
/**
* @file
* LocalGov Microsites Group install file.
*/
use Drupal\Core\Config\ConfigManagerInterface;
use Drupal\group\Entity\Group;
use Drupal\search_api\Entity\Index;
/**
* Implements hook_install().
*/
function localgov_microsites_group_install($is_syncing) {
if ($is_syncing) {
return;
}
// Group sites should be installed aleady. It provides configuration, so we
// can't, but must update its default config.
$group_sites = \Drupal::configFactory()->getEditable('group_sites.settings');
$group_sites->set('context_provider', '@group_context_domain.group_from_domain_context:group');
$group_sites->save();
// Add domain access to exclude other sites results.
$index = Index::load('localgov_sitewide_search');
$processor = \Drupal::getContainer()
->get('search_api.plugin_helper')
->createProcessorPlugin($index, 'domain_group_entity_access');
$index->addProcessor($processor);
$index->save();
}
/**
* Implements hook_update_last_removed().
*/
function localgov_microsites_group_update_last_removed() {
return 9003;
}
/**
* Migrate microsite domains to group_context_domain from domain_group.
*/
function localgov_microsites_group_update_9004() {
foreach (\Drupal::entityTypeManager()->getStorage('domain')->loadMultiple() as $domain) {
if (
($group_id = $domain->getThirdPartySetting('domain_group', 'group')) &&
($group = Group::load($group_id))
) {
$domain->setThirdPartySetting('group_context_domain', 'group_uuid', $group->uuid());
$domain->unsetThirdPartySetting('domain_group', 'group');
$domain->save();
}
}
}
/**
* Update configuration dependencies.
*/
function localgov_microsites_group_update_9005() {
$config_manager = \Drupal::service('config.manager');
assert($config_manager instanceof ConfigManagerInterface);
// $config_manager->loadConfigEntityByName('')
$dependencies = $config_manager->findConfigEntityDependencies('module', ['domain_group']);
foreach ($dependencies as $name => $dependency) {
var_dump($name);
$config = $config_manager->loadConfigEntityByName($name);
$config->save();
}
}
/**
* Remove any group permissions entities before removing the module.
*/
function localgov_microsites_group_update_9006() {
$permission_storage = \Drupal::entityTypeManager()->getStorage('group_permission');
if ($permissions = $permission_storage->loadMultiple()) {
$permission_storage->delete($permissions);
}
}
/**
* Disable domain_group and group_permissions.
*/
function localgov_microsites_group_update_9007() {
\Drupal::service('module_installer')->uninstall(['domain_group', 'group_permissions']);
}
/**
* Set group sites context as would be done on install.
*/
function localgov_microsites_group_update_9008() {
$group_sites = \Drupal::configFactory()->getEditable('group_sites.settings');
$group_sites->set('context_provider', '@group_context_domain.group_from_domain_context:group');
$group_sites->save();
}