You are here

public function User::preSave in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/user/src/Entity/User.php \Drupal\user\Entity\User::preSave()
  2. 9 core/modules/user/src/Entity/User.php \Drupal\user\Entity\User::preSave()

File

core/modules/user/src/Entity/User.php, line 95

Class

User
Defines the user entity class.

Namespace

Drupal\user\Entity

Code

public function preSave(EntityStorageInterface $storage) {
  parent::preSave($storage);

  // Make sure that the authenticated/anonymous roles are not persisted.
  foreach ($this
    ->get('roles') as $index => $item) {
    if (in_array($item->target_id, [
      RoleInterface::ANONYMOUS_ID,
      RoleInterface::AUTHENTICATED_ID,
    ])) {
      $this
        ->get('roles')
        ->offsetUnset($index);
    }
  }

  // Store account cancellation information.
  foreach ([
    'user_cancel_method',
    'user_cancel_notify',
  ] as $key) {
    if (isset($this->{$key})) {
      \Drupal::service('user.data')
        ->set('user', $this
        ->id(), substr($key, 5), $this->{$key});
    }
  }
}