Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / modules / contrib / devel / webprofiler / src / DataCollector / UserDataCollector.php
1 <?php
2
3 namespace Drupal\webprofiler\DataCollector;
4
5 use Drupal\Core\Authentication\AuthenticationCollectorInterface;
6 use Drupal\Core\Session\AccountInterface;
7 use Drupal\Core\StringTranslation\StringTranslationTrait;
8 use Drupal\Core\Entity\EntityManagerInterface;
9 use Drupal\Core\Config\ConfigFactoryInterface;
10 use Drupal\webprofiler\DrupalDataCollectorInterface;
11 use Symfony\Component\HttpFoundation\Request;
12 use Symfony\Component\HttpFoundation\Response;
13 use Symfony\Component\HttpKernel\DataCollector\DataCollector;
14
15 /**
16  * Class UserDataCollector
17  */
18 class UserDataCollector extends DataCollector implements DrupalDataCollectorInterface {
19
20   use StringTranslationTrait, DrupalDataCollectorTrait;
21
22   /**
23    * @var \Drupal\Core\Session\AccountInterface
24    */
25   private $currentUser;
26
27   /**
28    * @var \Drupal\Core\Entity\EntityManagerInterface
29    */
30   private $entityManager;
31
32   /**
33    * @var \Drupal\Core\Config\ConfigFactoryInterface
34    */
35   private $configFactory;
36
37   /**
38    * @var \Drupal\Core\Authentication\AuthenticationCollectorInterface
39    */
40   private $providerCollector;
41
42   /**
43    * @param \Drupal\Core\Session\AccountInterface $currentUser
44    * @param \Drupal\Core\Entity\EntityManagerInterface $entityManager
45    * @param \Drupal\Core\Config\ConfigFactoryInterface $configFactory
46    * @param \Drupal\Core\Authentication\AuthenticationCollectorInterface $providerCollector
47    */
48   public function __construct(AccountInterface $currentUser, EntityManagerInterface $entityManager, ConfigFactoryInterface $configFactory, AuthenticationCollectorInterface $providerCollector) {
49     $this->currentUser = $currentUser;
50     $this->entityManager = $entityManager;
51     $this->configFactory = $configFactory;
52     $this->providerCollector = $providerCollector;
53   }
54
55   /**
56    * {@inheritdoc}
57    */
58   public function collect(Request $request, Response $response, \Exception $exception = NULL) {
59     $this->data['name'] = $this->currentUser->getDisplayName();
60     $this->data['authenticated'] = $this->currentUser->isAuthenticated();
61
62     $this->data['roles'] = [];
63     $storage = $this->entityManager->getStorage('user_role');
64     foreach ($this->currentUser->getRoles() as $role) {
65       $entity = $storage->load($role);
66       $this->data['roles'][] = $entity->label();
67     }
68
69     foreach ($this->providerCollector->getSortedProviders() as $provider_id => $provider) {
70       if ($provider->applies($request)) {
71         $this->data['provider'] = $provider_id;
72       }
73     }
74
75     $this->data['anonymous'] = $this->configFactory->get('user.settings')
76       ->get('anonymous');
77   }
78
79   /**
80    * @return \Drupal\Core\Session\AccountInterface
81    */
82   public function getUserName() {
83     return $this->data['name'];
84   }
85
86   /**
87    * @return bool
88    */
89   public function getAuthenticated() {
90     return $this->data['authenticated'];
91   }
92
93   /**
94    * @return array
95    */
96   public function getRoles() {
97     return $this->data['roles'];
98   }
99
100   /**
101    * @return string
102    */
103   public function getProvider() {
104     return $this->data['provider'];
105   }
106
107   /**
108    * @return string
109    */
110   public function getAnonymous() {
111     return $this->data['anonymous'];
112   }
113
114   /**
115    * {@inheritdoc}
116    */
117   public function getName() {
118     return 'user';
119   }
120
121   /**
122    * {@inheritdoc}
123    */
124   public function getTitle() {
125     return $this->t('User');
126   }
127
128   /**
129    * {@inheritdoc}
130    */
131   public function getPanelSummary() {
132     return $this->getUserName();
133   }
134
135   /**
136    * {@inheritdoc}
137    */
138   public function getIcon() {
139     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==';
140   }
141 }