vendor/kunstmaan/node-bundle/EventListener/LogPageEventsSubscriber.php line 99

Open in your IDE?
  1. <?php
  2. namespace Kunstmaan\NodeBundle\EventListener;
  3. use Kunstmaan\AdminBundle\Entity\UserInterface;
  4. use Kunstmaan\NodeBundle\Event\CopyPageTranslationNodeEvent;
  5. use Kunstmaan\NodeBundle\Event\Events;
  6. use Kunstmaan\NodeBundle\Event\NodeEvent;
  7. use Kunstmaan\NodeBundle\Event\RecopyPageTranslationNodeEvent;
  8. use Symfony\Bridge\Monolog\Logger;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  11. class LogPageEventsSubscriber implements EventSubscriberInterface
  12. {
  13.     /**
  14.      * @var Logger
  15.      */
  16.     private $logger;
  17.     /**
  18.      * @var TokenStorageInterface
  19.      */
  20.     private $tokenStorage;
  21.     /**
  22.      * @var UserInterface
  23.      */
  24.     private $user;
  25.     /**
  26.      * @param Logger                $logger       The logger
  27.      * @param TokenStorageInterface $tokenStorage The security token storage
  28.      */
  29.     public function __construct(Logger $loggerTokenStorageInterface $tokenStorage)
  30.     {
  31.         $this->logger $logger;
  32.         $this->tokenStorage $tokenStorage;
  33.     }
  34.     /**
  35.      * @return string[]
  36.      */
  37.     public static function getSubscribedEvents()
  38.     {
  39.         return [
  40.             Events::COPY_PAGE_TRANSLATION => 'onCopyPageTranslation',
  41.             Events::RECOPY_PAGE_TRANSLATION => 'onRecopyPageTranslation',
  42.             Events::ADD_EMPTY_PAGE_TRANSLATION => 'onAddEmptyPageTranslation',
  43.             Events::POST_PUBLISH => 'postPublish',
  44.             Events::POST_UNPUBLISH => 'postUnPublish',
  45.             Events::POST_DELETE => 'postDelete',
  46.             Events::ADD_NODE => 'onAddNode',
  47.             Events::POST_PERSIST => 'postPersist',
  48.             Events::CREATE_PUBLIC_VERSION => 'onCreatePublicVersion',
  49.             Events::CREATE_DRAFT_VERSION => 'onCreateDraftVersion',
  50.         ];
  51.     }
  52.     private function getUser(): UserInterface
  53.     {
  54.         if (\is_null($this->user)) {
  55.             $this->user $this->tokenStorage->getToken()->getUser();
  56.         }
  57.         return $this->user;
  58.     }
  59.     public function onCopyPageTranslation(CopyPageTranslationNodeEvent $event)
  60.     {
  61.         $this->logger->info(sprintf('%s just copied the page translation from %s (%d) to %s (%d) for node with id %d'$this->getUsername(), $event->getOriginalLanguage(), $event->getOriginalPage()->getId(), $event->getNodeTranslation()->getLang(), $event->getPage()->getId(), $event->getNode()->getId()));
  62.     }
  63.     public function onRecopyPageTranslation(RecopyPageTranslationNodeEvent $event)
  64.     {
  65.         $this->logger->info(sprintf('%s just recopied the page translation from %s (%d) to %s (%d) for node with id %d'$this->getUsername(), $event->getOriginalLanguage(), $event->getOriginalPage()->getId(), $event->getNodeTranslation()->getLang(), $event->getPage()->getId(), $event->getNode()->getId()));
  66.     }
  67.     public function onAddEmptyPageTranslation(NodeEvent $event)
  68.     {
  69.         $this->logger->info(sprintf('%s just added an empty page translation (%d) for node with id %d in language %s'$this->getUsername(), $event->getPage()->getId(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  70.     }
  71.     public function postPublish(NodeEvent $event)
  72.     {
  73.         $this->logger->info(sprintf('%s just published the page with id %d for node %d in language %s'$this->getUsername(), $event->getPage()->getId(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  74.     }
  75.     public function postUnPublish(NodeEvent $event)
  76.     {
  77.         $this->logger->info(sprintf('%s just unpublished the page with id %d for node %d in language %s'$this->getUsername(), $event->getPage()->getId(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  78.     }
  79.     public function postDelete(NodeEvent $event)
  80.     {
  81.         $this->logger->info(sprintf('%s just deleted node with id %d'$this->getUsername(), $event->getNode()->getId()));
  82.     }
  83.     public function onAddNode(NodeEvent $event)
  84.     {
  85.         $this->logger->info(sprintf('%s just added node with id %d in language %s'$this->getUsername(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  86.     }
  87.     public function postPersist(NodeEvent $event)
  88.     {
  89.         $this->logger->info(sprintf('%s just updated page with id %d for node %d in language %s'$this->getUsername(), $event->getPage()->getId(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  90.     }
  91.     public function onCreatePublicVersion(NodeEvent $event)
  92.     {
  93.         $this->logger->info(sprintf('%s just created a new public version %d for node %d in language %s'$this->getUsername(), $event->getNodeVersion()->getId(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  94.     }
  95.     public function onCreateDraftVersion(NodeEvent $event)
  96.     {
  97.         $this->logger->info(sprintf('%s just created a draft version %d for node %d in language %s'$this->getUsername(), $event->getNodeVersion()->getId(), $event->getNode()->getId(), $event->getNodeTranslation()->getLang()));
  98.     }
  99.     private function getUsername(): string
  100.     {
  101.         $user $this->getUser();
  102.         return method_exists($user'getUserIdentifier') ? $user->getUserIdentifier() : $user->getUsername();
  103.     }
  104. }