function User::preSave

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

Overrides ContentEntityBase::preSave

File

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

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});
    }
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.