You are here

function user_user_role_delete in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/user/user.module \user_user_role_delete()

Implements hook_ENTITY_TYPE_delete() for user_role entities.

File

core/modules/user/user.module, line 1017
Enables the user registration and login system.

Code

function user_user_role_delete(RoleInterface $role) {

  // Delete role references for all users.
  $user_storage = \Drupal::entityManager()
    ->getStorage('user');
  $user_storage
    ->deleteRoleReferences(array(
    $role
      ->id(),
  ));

  // Ignore the authenticated and anonymous roles or the role is being synced.
  if (in_array($role
    ->id(), array(
    RoleInterface::AUTHENTICATED_ID,
    RoleInterface::ANONYMOUS_ID,
  )) || $role
    ->isSyncing()) {
    return;
  }
  $actions = entity_load_multiple('action', array(
    'user_add_role_action.' . $role
      ->id(),
    'user_remove_role_action.' . $role
      ->id(),
  ));
  foreach ($actions as $action) {
    $action
      ->delete();
  }
}