src/EventSubscriber/NavbarUserSubscriber.php line 39

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\User;
  4. use KevinPapst\AdminLTEBundle\Event\NavbarUserEvent;
  5. use KevinPapst\AdminLTEBundle\Event\ShowUserEvent;
  6. use KevinPapst\AdminLTEBundle\Model\UserModel;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use Symfony\Component\Security\Core\Security;
  9. use Symfony\Component\Security\Http\Attribute\CurrentUser;
  10. class NavbarUserSubscriber implements EventSubscriberInterface
  11. {
  12.     protected $security;
  13.     /**
  14.      * NavbarUserSubscriber constructor.
  15.      * @param Security $security
  16.      */
  17.     public function __construct(Security $security)
  18.     {
  19.         $this->security $security;
  20.     }
  21.     /**
  22.      * @return array
  23.      */
  24.     public static function getSubscribedEvents(): array
  25.     {
  26.         return [
  27.             NavbarUserEvent::class => ['onShowUser'100],
  28.         ];
  29.     }
  30.     /**
  31.      * @param ShowUserEvent $event
  32.      */
  33.     public function onShowUser(ShowUserEvent $event)
  34.     {
  35.         /* @var $realUser User */
  36.         $realUser $this->security->getUser();
  37.         if (!is_null($realUser)) {
  38.             $adminLteUser = new UserModel();
  39.             $adminLteUser
  40.                 ->setId($realUser->getId())
  41.                 ->setIsOnline(true)
  42.                 ->setName($realUser->getFirstName() || $realUser->getLastname()
  43.                     ? $realUser->getFirstName() . ' ' $realUser->getLastname()
  44.                     : $realUser->getUserIdentifier()
  45.                 )
  46.                 ->setUsername($realUser->getUserIdentifier())
  47.                 ->setMemberSince($realUser->getCreatedAt())
  48.             ;
  49.             $event
  50.                 ->setUser($adminLteUser)
  51.                 ->setShowProfileLink(true)
  52.             ;
  53.         }
  54.     }
  55. }