oidc-1.0.0-alpha2/src/ExistingAccountValidator.php

src/ExistingAccountValidator.php
<?php

namespace Drupal\oidc;

use Drupal\externalauth\AuthmapInterface;
use Drupal\user\UserInterface;

/**
 * Existing account validator service.
 */
class ExistingAccountValidator implements ExistingAccountValidatorInterface {

  /**
   * Validation results cache.
   *
   * @var bool[]
   */
  protected $validationResults = [];

  /**
   * The authentication mapping service.
   *
   * @var \Drupal\externalauth\AuthmapInterface
   */
  protected $authmap;

  /**
   * Class constructor.
   *
   * @param \Drupal\externalauth\AuthmapInterface $authmap
   *   The authentication mapping service.
   */
  public function __construct(AuthmapInterface $authmap) {
    $this->authmap = $authmap;
  }

  /**
   * {@inheritdoc}
   */
  public function isValid(UserInterface $account) {
    $uid = $account->id();

    if (!isset($this->validationResults[$uid])) {
      $this->validationResults[$uid] = $uid > 1 && !$this->authmap->getAll($uid);
    }

    return $this->validationResults[$uid];
  }

  /**
   * {@inheritdoc}
   */
  public function resetCache(?UserInterface $account = NULL) {
    if (!$account) {
      $this->validationResults = [];
      return;
    }

    $uid = $account->id();

    if (isset($this->validationResults[$uid])) {
      unset($this->validationResults[$uid]);
    }
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc