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. 10 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.