Version 1
[yaffs-website] / web / modules / contrib / devel / webprofiler / src / DataCollector / UserDataCollector.php
diff --git a/web/modules/contrib/devel/webprofiler/src/DataCollector/UserDataCollector.php b/web/modules/contrib/devel/webprofiler/src/DataCollector/UserDataCollector.php
new file mode 100644 (file)
index 0000000..e2b7a10
--- /dev/null
@@ -0,0 +1,141 @@
+<?php
+
+namespace Drupal\webprofiler\DataCollector;
+
+use Drupal\Core\Authentication\AuthenticationCollectorInterface;
+use Drupal\Core\Session\AccountInterface;
+use Drupal\Core\StringTranslation\StringTranslationTrait;
+use Drupal\Core\Entity\EntityManagerInterface;
+use Drupal\Core\Config\ConfigFactoryInterface;
+use Drupal\webprofiler\DrupalDataCollectorInterface;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\Response;
+use Symfony\Component\HttpKernel\DataCollector\DataCollector;
+
+/**
+ * Class UserDataCollector
+ */
+class UserDataCollector extends DataCollector implements DrupalDataCollectorInterface {
+
+  use StringTranslationTrait, DrupalDataCollectorTrait;
+
+  /**
+   * @var \Drupal\Core\Session\AccountInterface
+   */
+  private $currentUser;
+
+  /**
+   * @var \Drupal\Core\Entity\EntityManagerInterface
+   */
+  private $entityManager;
+
+  /**
+   * @var \Drupal\Core\Config\ConfigFactoryInterface
+   */
+  private $configFactory;
+
+  /**
+   * @var \Drupal\Core\Authentication\AuthenticationCollectorInterface
+   */
+  private $providerCollector;
+
+  /**
+   * @param \Drupal\Core\Session\AccountInterface $currentUser
+   * @param \Drupal\Core\Entity\EntityManagerInterface $entityManager
+   * @param \Drupal\Core\Config\ConfigFactoryInterface $configFactory
+   * @param \Drupal\Core\Authentication\AuthenticationCollectorInterface $providerCollector
+   */
+  public function __construct(AccountInterface $currentUser, EntityManagerInterface $entityManager, ConfigFactoryInterface $configFactory, AuthenticationCollectorInterface $providerCollector) {
+    $this->currentUser = $currentUser;
+    $this->entityManager = $entityManager;
+    $this->configFactory = $configFactory;
+    $this->providerCollector = $providerCollector;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function collect(Request $request, Response $response, \Exception $exception = NULL) {
+    $this->data['name'] = $this->currentUser->getDisplayName();
+    $this->data['authenticated'] = $this->currentUser->isAuthenticated();
+
+    $this->data['roles'] = [];
+    $storage = $this->entityManager->getStorage('user_role');
+    foreach ($this->currentUser->getRoles() as $role) {
+      $entity = $storage->load($role);
+      $this->data['roles'][] = $entity->label();
+    }
+
+    foreach ($this->providerCollector->getSortedProviders() as $provider_id => $provider) {
+      if ($provider->applies($request)) {
+        $this->data['provider'] = $provider_id;
+      }
+    }
+
+    $this->data['anonymous'] = $this->configFactory->get('user.settings')
+      ->get('anonymous');
+  }
+
+  /**
+   * @return \Drupal\Core\Session\AccountInterface
+   */
+  public function getUserName() {
+    return $this->data['name'];
+  }
+
+  /**
+   * @return bool
+   */
+  public function getAuthenticated() {
+    return $this->data['authenticated'];
+  }
+
+  /**
+   * @return array
+   */
+  public function getRoles() {
+    return $this->data['roles'];
+  }
+
+  /**
+   * @return string
+   */
+  public function getProvider() {
+    return $this->data['provider'];
+  }
+
+  /**
+   * @return string
+   */
+  public function getAnonymous() {
+    return $this->data['anonymous'];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getName() {
+    return 'user';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getTitle() {
+    return $this->t('User');
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getPanelSummary() {
+    return $this->getUserName();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getIcon() {
+    return 'iVBORw0KGgoAAAANSUhEUgAAABgAAAAcCAYAAAB75n/uAAAC70lEQVR42u2V3UtTYRzHu+mFwCwK+gO6CEryPlg7yiYx50vDqUwjFIZDSYUk2ZTmCysHvg9ZVggOQZiRScsR4VwXTjEwdKZWk8o6gd5UOt0mbev7g/PAkLONIOkiBx+25/v89vuc85zn2Q5Fo9F95UDwnwhS5HK5TyqVRv8m1JN6k+AiC+fn54cwbgFNIrTQ/J9IqDcJJDGBHsgDgYBSq9W6ysvLPf39/SSUUU7zsQ1yc3MjmN90OBzfRkZG1umzQqGIxPSTkIBjgdDkaGNjoza2kcFgUCE/QvMsq6io2PV6vQu1tbV8Xl7etkql2qqvr/+MbDE/Pz8s9OP2Cjhwwmw29+4R3Kec1WZnZ4fn5uamc3Jyttra2qbH8ero6JgdHh5+CvFHq9X6JZHgzODgoCVW0NPTY0N+ltU2Nzdv4GqXsYSrPp+vDw80aLFYxru6uhyQ/rDb7a8TCVJDodB1jUazTVlxcXGQ5/mbyE+z2u7u7veY38BVT3Z2djopm5qa6isrK/tQWVn5qb29fSGR4DC4PDAwMEsZHuArjGnyGKutq6v7ajQaF6urq9/MzMz0QuSemJiwQDwGkR0POhhXgILjNTU1TaWlpTxlOp1uyWQyaUjMajMzM8Nut/tJQUHBOpZppbCwkM/KytrBznuL9xDVxBMo8KXHYnu6qKjIivmrbIy67x6Px4Yd58W672ApfzY0NCyNjo7OZmRkiAv8fr+O47iwmABXtoXaG3uykF6vX7bZbF6cgZWqqiqezYkKcNtmjO+CF2AyhufgjsvlMiU7vXEF+4C4ALf9CwdrlVAqlcFkTdRqdQSHLUDgBEeSCrArAsiGwENs0XfJBE6ncxm1D8Aj/B6tigkkJSUlmxSwLYhMDeRsyyUCd+lHrWxtbe2aTCbbZTn1ZD92F0Cr8GBfgnsgDZwDt8EzMBmHMXBLqD0PDMAh9Gql3iRIESQSIAXp4CRIBZeEjIvDFZAm1J4C6UK9ROiZcvCn/+8FvwHtDdJEaRY+oQAAAABJRU5ErkJggg==';
+  }
+}