You are here

function agreement_user_update in Agreement 3.0.x

Same name and namespace in other branches
  1. 8.2 agreement.module \agreement_user_update()
  2. 7.2 agreement.module \agreement_user_update()

Implements hook_user_update().

File

./agreement.module, line 17
Agreement module code - agreement.module.

Code

function agreement_user_update(EntityInterface $account) {

  /** @var \Drupal\user\Entity\User $account */
  if ($account
    ->getEntityTypeId() === 'user') {
    $current_user = \Drupal::currentUser();
    $agreements = \Drupal::entityTypeManager()
      ->getStorage('agreement')
      ->loadMultiple();

    /** @var \Drupal\agreement\Entity\Agreement $agreement */
    foreach ($agreements as $agreement) {

      // Do not require user to re-accept agreement if they've just changed
      // their password.
      $settings = $agreement
        ->getSettings();
      if ($settings['frequency'] === 0 && isset($account->original) && $account
        ->checkExistingPassword($account->original) && $current_user
        ->id() === $account
        ->id()) {
        \Drupal::service('agreement.handler')
          ->agree($account, $agreement, 2);
      }
    }
  }
}