You are here

public function Role::onDependencyRemoval in Workbench Email 2.x

Same name and namespace in other branches
  1. 8 src/Plugin/RecipientType/Role.php \Drupal\workbench_email\Plugin\RecipientType\Role::onDependencyRemoval()

Informs the plugin that a dependency of the recipient type will be deleted.

@todo https://www.drupal.org/node/2579743 make part of a generic interface.

Parameters

array $dependencies: An array of dependencies that will be deleted keyed by dependency type.

Return value

bool TRUE if the template settings have been changed.

Overrides RecipientTypeBase::onDependencyRemoval

See also

\Drupal\Core\Config\ConfigEntityInterface::onDependencyRemoval()

File

src/Plugin/RecipientType/Role.php, line 129

Class

Role
Provides a recipient type of user role.

Namespace

Drupal\workbench_email\Plugin\RecipientType

Code

public function onDependencyRemoval(array $dependencies) {
  $removed_roles = array_reduce($dependencies['config'], function (array $carry, $item) {
    if (!$item instanceof RoleInterface) {
      return $carry;
    }
    $carry[] = $item
      ->id();
    return $carry;
  }, []);
  if ($removed_roles && array_intersect($removed_roles, $this
    ->getRoles())) {
    $this
      ->setRoles(array_diff($this
      ->getRoles(), $removed_roles));
    return TRUE;
  }
  return FALSE;
}