src/EventSubscriber/NavbarUserSubscriber.php line 30

Open in your IDE?
  1. <?php
  2. // src/EventSubscriber/NavbarUserSubscriber.php
  3. namespace App\EventSubscriber;
  4. use App\Entity\User;
  5. use KevinPapst\AdminLTEBundle\Event\ShowUserEvent;
  6. use KevinPapst\AdminLTEBundle\Event\NavbarUserEvent;
  7. use KevinPapst\AdminLTEBundle\Event\SidebarUserEvent;
  8. use KevinPapst\AdminLTEBundle\Model\UserModel;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. use Symfony\Component\Security\Core\Security;
  11. class NavbarUserSubscriber implements EventSubscriberInterface
  12. {
  13.     protected $security;
  14.     
  15.     public function __construct(Security $security)
  16.     {
  17.         $this->security $security;
  18.     }
  19.     
  20.     public static function getSubscribedEvents(): array
  21.     {
  22.         return [
  23.             NavbarUserEvent::class => ['onShowUser'100],
  24.             SidebarUserEvent::class => ['onShowUser'100],
  25.         ];
  26.     }
  27.     
  28.     public function onShowUser(ShowUserEvent $event)
  29.     {
  30.         if (null === $this->security->getUser()) {
  31.             return;
  32.         }
  33.         
  34.         /* @var $myUser User */
  35.         $myUser $this->security->getUser();
  36.         
  37.         $user = new UserModel();
  38.         $user
  39.             ->setId($myUser->getId())
  40.             ->setName($myUser->getUsername())
  41.             ->setUsername($myUser->getUsername())
  42.             ->setTitle($myUser->getFormattedName())
  43.         ;
  44.         
  45.         $event->setShowLogoutLink(true);
  46.         $event->setUser($user);
  47.         $event->setShowProfileLink(false);
  48.     }
  49. }