You are here

class SharedSecretRequirement in Acquia Content Hub 8

Verify shared secret is stored locally and matches remote shared secret.

Plugin annotation


@ContentHubRequirement(
  id = "shared_secret_verification",
  title = @Translation("Shared secret"),
)

Hierarchy

Expanded class hierarchy of SharedSecretRequirement

File

acquia_contenthub_diagnostic/src/Plugin/ContentHubRequirement/SharedSecretRequirement.php, line 15

Namespace

Drupal\acquia_contenthub_diagnostic\Plugin\ContentHubRequirement
View source
class SharedSecretRequirement extends ContentHubRequirementBase {

  /**
   * Verify shared secret is stored locally and matches remote shared secret.
   */
  public function verify() {

    // If Content Hub is not installed there is no reason to run this test.
    if (!$this->moduleHandler
      ->moduleExists('acquia_contenthub')) {
      return REQUIREMENT_OK;
    }
    $shared_secret = \Drupal::state()
      ->get('acquia_contenthub.shared_secret');
    $client_manager = \Drupal::service('acquia_contenthub.client_manager');

    // If client manager is not connected we cannot verify the remote key.
    if (!$client_manager
      ->isConnected()) {
      $this
        ->setValue($this
        ->t('Acquia Content Hub service is not connected.'));
      $this
        ->setDescription($this
        ->t('Unable to reach Acquia Content Hub service. Cannot verify shared secret.'));
      return REQUIREMENT_WARNING;
    }

    // Get settings via direct request as the getSettings function sets the
    // shared secret.
    $settings = $client_manager
      ->createRequest('getSettings');

    // If we cannot get the settings warn that we cannot verify shared secret.
    if (!$settings) {
      $this
        ->setValue($this
        ->t('Unable to get Acquia Content Hub settings.'));
      $this
        ->setDescription($this
        ->t('Unable to get Acquia Content Hub settings. Cannot verify shared secret.'));
      return REQUIREMENT_WARNING;
    }

    // Warn if no key is stored locally.
    if (!$shared_secret) {
      $this
        ->setValue($this
        ->t('Shared secret not stored locally.'));
      $this
        ->setDescription($this
        ->t('The shared secret is not stored locally. An attempt has been made to correct this issue. Refresh the page and if this error persists contact Acquia Support.'));
      \Drupal::service('acquia_contenthub.acquia_contenthub_subscription')
        ->getSettings();
      return REQUIREMENT_WARNING;
    }

    // If the local shared secret and remote shared secret do not match throw
    // an error and store the new secret.
    if ($shared_secret != $settings
      ->getSharedSecret()) {
      $this
        ->setValue($this
        ->t('Local shared secret incorrect.'));
      $this
        ->setDescription($this
        ->t('The local shared secret did not match the remote shared secret. An attempt has been made to correct this issue. Refresh the page and if this error persists contact Acquia Support.'));
      \Drupal::service('acquia_contenthub.acquia_contenthub_subscription')
        ->getSettings();
      return REQUIREMENT_ERROR;
    }
    return REQUIREMENT_OK;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ContentHubRequirementBase::$description protected property The description of the requirement/status. 1
ContentHubRequirementBase::$moduleHandler protected property The module handler.
ContentHubRequirementBase::$severity protected property The requirement's result/severity level.
ContentHubRequirementBase::$value protected property The current value.
ContentHubRequirementBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
ContentHubRequirementBase::description public function Returns the description of the requirement/status. Overrides ContentHubRequirementInterface::description 1
ContentHubRequirementBase::getDomain protected function Get the domain to run the tests on.
ContentHubRequirementBase::setDescription protected function Sets the description of the requirement/status.
ContentHubRequirementBase::setValue protected function Sets the current value.
ContentHubRequirementBase::severity public function Returns the requirement's result/severity level. Overrides ContentHubRequirementInterface::severity
ContentHubRequirementBase::title public function Returns the name of the requirement. Overrides ContentHubRequirementInterface::title
ContentHubRequirementBase::value public function Returns the current value. Overrides ContentHubRequirementInterface::value
ContentHubRequirementBase::__construct public function Constructs a new ContentHubRequirementBase. Overrides PluginBase::__construct
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
SharedSecretRequirement::verify public function Verify shared secret is stored locally and matches remote shared secret. Overrides ContentHubRequirementBase::verify
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.