vendor/symfony/monolog-bridge/Processor/TokenProcessor.php line 21

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Symfony\Bridge\Monolog\Processor;
  11. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  12. /**
  13.  * Adds the current security token to the log entry.
  14.  *
  15.  * @author Dany Maillard <danymaillard93b@gmail.com>
  16.  */
  17. class TokenProcessor
  18. {
  19.     private $tokenStorage;
  20.     public function __construct(TokenStorageInterface $tokenStorage)
  21.     {
  22.         $this->tokenStorage $tokenStorage;
  23.     }
  24.     public function __invoke(array $records)
  25.     {
  26.         $records['extra']['token'] = null;
  27.         if (null !== $token $this->tokenStorage->getToken()) {
  28.             if (method_exists($token'getRoleNames')) {
  29.                 $roles $token->getRoleNames();
  30.             } else {
  31.                 $roles array_map(function ($role) { return $role->getRole(); }, $token->getRoles(false));
  32.             }
  33.             $records['extra']['token'] = [
  34.                 'username' => $token->getUsername(),
  35.                 'authenticated' => $token->isAuthenticated(),
  36.                 'roles' => $roles,
  37.             ];
  38.         }
  39.         return $records;
  40.     }
  41. }