diff --git a/domain_access/domain_access.install b/domain_access/domain_access.install index 189ea8ff..1d1c4f93 100644 --- a/domain_access/domain_access.install +++ b/domain_access/domain_access.install @@ -44,3 +44,7 @@ function domain_access_update_8001() { $config->set('node_advanced_tab_open', 0); $config->save(TRUE); } + +/** + * @TODO: Update action names to replace . with __. + */ diff --git a/domain_access/domain_access.module b/domain_access/domain_access.module index aeeb1a6f..49c9308b 100755 --- a/domain_access/domain_access.module +++ b/domain_access/domain_access.module @@ -632,7 +632,7 @@ function domain_access_domain_insert($entity) { // Do not fire hook when config sync in progress. return; } - $id = 'domain_access_add_action.' . $entity->id(); + $id = 'domain_access_add_action__' . $entity->id(); $controller = \Drupal::entityTypeManager()->getStorage('action'); if (!$controller->load($id)) { /** @var \Drupal\system\Entity\Action $action */ @@ -641,13 +641,13 @@ function domain_access_domain_insert($entity) { 'type' => 'node', 'label' => t('Add selected content to the @label domain', ['@label' => $entity->label()]), 'configuration' => [ - 'domain_id' => $entity->id(), + 'domain_id' => [$entity->id()], ], 'plugin' => 'domain_access_add_action', ]); $action->trustData()->save(); } - $remove_id = 'domain_access_remove_action.' . $entity->id(); + $remove_id = 'domain_access_remove_action__' . $entity->id(); if (!$controller->load($remove_id)) { /** @var \Drupal\system\Entity\Action $action */ $action = $controller->create([ @@ -655,13 +655,13 @@ function domain_access_domain_insert($entity) { 'type' => 'node', 'label' => t('Remove selected content from the @label domain', ['@label' => $entity->label()]), 'configuration' => [ - 'domain_id' => $entity->id(), + 'domain_id' => [$entity->id()], ], 'plugin' => 'domain_access_remove_action', ]); $action->trustData()->save(); } - $id = 'domain_access_add_editor_action.' . $entity->id(); + $id = 'domain_access_add_editor_action__' . $entity->id(); if (!$controller->load($id)) { /** @var \Drupal\system\Entity\Action $action */ $action = $controller->create([ @@ -669,13 +669,13 @@ function domain_access_domain_insert($entity) { 'type' => 'user', 'label' => t('Add editors to the @label domain', ['@label' => $entity->label()]), 'configuration' => [ - 'domain_id' => $entity->id(), + 'domain_id' => [$entity->id()], ], 'plugin' => 'domain_access_add_editor_action', ]); $action->trustData()->save(); } - $remove_id = 'domain_access_remove_editor_action.' . $entity->id(); + $remove_id = 'domain_access_remove_editor_action__' . $entity->id(); if (!$controller->load($remove_id)) { /** @var \Drupal\system\Entity\Action $action */ $action = $controller->create([ @@ -683,7 +683,7 @@ function domain_access_domain_insert($entity) { 'type' => 'user', 'label' => t('Remove editors from the @label domain', ['@label' => $entity->label()]), 'configuration' => [ - 'domain_id' => $entity->id(), + 'domain_id' => [$entity->id()], ], 'plugin' => 'domain_access_remove_editor_action', ]); diff --git a/domain_access/src/Plugin/Action/DomainAccessActionBase.php b/domain_access/src/Plugin/Action/DomainAccessActionBase.php index 4f074e82..e900bf09 100644 --- a/domain_access/src/Plugin/Action/DomainAccessActionBase.php +++ b/domain_access/src/Plugin/Action/DomainAccessActionBase.php @@ -62,7 +62,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta '#type' => 'checkboxes', '#title' => t('Domain'), '#options' => $domains, - '#default_value' => $this->configuration['id'], + '#default_value' => isset($this->configuration['domain_id']) ? (array) $this->configuration['domain_id'] : [], '#required' => TRUE, ]; return $form; @@ -81,7 +81,14 @@ public function submitConfigurationForm(array &$form, FormStateInterface $form_s public function calculateDependencies() { if (!empty($this->configuration['domain_id'])) { $prefix = $this->entityType->getConfigPrefix() . '.'; - $this->addDependency('config', $prefix . $this->configuration['domain_id']); + if (is_array($this->configuration['domain_id'])) { + foreach ($this->configuration['domain_id'] as $domain_id) { + $this->addDependency('config', $prefix . $domain_id); + } + } + else { + $this->addDependency('config', $prefix . $this->configuration['domain_id']); + } } return $this->dependencies; } diff --git a/domain_access/src/Plugin/Action/DomainAccessAdd.php b/domain_access/src/Plugin/Action/DomainAccessAdd.php index 5d388405..6b337503 100644 --- a/domain_access/src/Plugin/Action/DomainAccessAdd.php +++ b/domain_access/src/Plugin/Action/DomainAccessAdd.php @@ -17,14 +17,16 @@ class DomainAccessAdd extends DomainAccessActionBase { * {@inheritdoc} */ public function execute($entity = NULL) { - $id = $this->configuration['domain_id']; + $ids = (array) $this->configuration['domain_id']; $node_domains = \Drupal::service('domain_access.manager')->getAccessValues($entity); // Add domain assignment if not present. - if ($entity !== FALSE && !isset($node_domains[$id])) { - $node_domains[$id] = $id; - $entity->set(DOMAIN_ACCESS_FIELD, array_keys($node_domains)); - $entity->save(); + foreach ($ids as $id) { + if ($entity !== FALSE && !isset($node_domains[$id])) { + $node_domains[$id] = $id; + $entity->set(DOMAIN_ACCESS_FIELD, array_keys($node_domains)); + $entity->save(); + } } } diff --git a/domain_access/src/Plugin/Action/DomainAccessAddEditor.php b/domain_access/src/Plugin/Action/DomainAccessAddEditor.php index e6e963de..c7925400 100644 --- a/domain_access/src/Plugin/Action/DomainAccessAddEditor.php +++ b/domain_access/src/Plugin/Action/DomainAccessAddEditor.php @@ -17,14 +17,16 @@ class DomainAccessAddEditor extends DomainAccessActionBase { * {@inheritdoc} */ public function execute($entity = NULL) { - $id = $this->configuration['domain_id']; + $ids = (array) $this->configuration['domain_id']; $user_domains = \Drupal::service('domain_access.manager')->getAccessValues($entity); // Skip adding the role to the user if they already have it. - if ($entity !== FALSE && !isset($user_domains[$id])) { - $user_domains[$id] = $id; - $entity->set(DOMAIN_ACCESS_FIELD, array_keys($user_domains)); - $entity->save(); + foreach ($ids as $id) { + if ($entity !== FALSE && !isset($user_domains[$id])) { + $user_domains[$id] = $id; + $entity->set(DOMAIN_ACCESS_FIELD, array_keys($user_domains)); + $entity->save(); + } } } diff --git a/domain_access/src/Plugin/Action/DomainAccessRemove.php b/domain_access/src/Plugin/Action/DomainAccessRemove.php index d6c676c1..dbcf0c23 100644 --- a/domain_access/src/Plugin/Action/DomainAccessRemove.php +++ b/domain_access/src/Plugin/Action/DomainAccessRemove.php @@ -17,14 +17,16 @@ class DomainAccessRemove extends DomainAccessActionBase { * {@inheritdoc} */ public function execute($entity = NULL) { - $id = $this->configuration['domain_id']; + $ids = (array) $this->configuration['domain_id']; $node_domains = \Drupal::service('domain_access.manager')->getAccessValues($entity); // Remove domain assignment if present. - if ($entity !== FALSE && isset($node_domains[$id])) { - unset($node_domains[$id]); - $entity->set(DOMAIN_ACCESS_FIELD, array_keys($node_domains)); - $entity->save(); + foreach ($ids as $id) { + if ($entity !== FALSE && isset($node_domains[$id])) { + unset($node_domains[$id]); + $entity->set(DOMAIN_ACCESS_FIELD, array_keys($node_domains)); + $entity->save(); + } } } diff --git a/domain_access/src/Plugin/Action/DomainAccessRemoveEditor.php b/domain_access/src/Plugin/Action/DomainAccessRemoveEditor.php index 0c2e2790..4ea5af2e 100644 --- a/domain_access/src/Plugin/Action/DomainAccessRemoveEditor.php +++ b/domain_access/src/Plugin/Action/DomainAccessRemoveEditor.php @@ -17,14 +17,16 @@ class DomainAccessRemoveEditor extends DomainAccessActionBase { * {@inheritdoc} */ public function execute($entity = NULL) { - $id = $this->configuration['domain_id']; + $id = (array) $this->configuration['domain_id']; $user_domains = \Drupal::service('domain_access.manager')->getAccessValues($entity); // Skip adding the role to the user if they already have it. - if ($entity !== FALSE && isset($user_domains[$id])) { - unset($user_domains[$id]); - $entity->set(DOMAIN_ACCESS_FIELD, array_keys($user_domains)); - $entity->save(); + foreach ($ids as $id) { + if ($entity !== FALSE && isset($user_domains[$id])) { + unset($user_domains[$id]); + $entity->set(DOMAIN_ACCESS_FIELD, array_keys($user_domains)); + $entity->save(); + } } }