Ejemplo n.º 1
0
 /**
  * @param ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     // getSubscribedEvents doesn't seem to support parent classes
     if (!$event->getObject() instanceof MediaInterface) {
         return;
     }
     $provider = $this->pool->getProvider($event->getObject()->getProvider());
     if ($provider->getName() == 'image') {
         $reference = $provider->getThumb($event->getObject());
         $groups = $event->getContext()->attributes->get('groups');
         if (!$groups instanceof None && in_array('detail', $groups->get())) {
             $filters = array_keys($this->filterConfig->all());
         } else {
             $filters = ['medialibrary'];
         }
         $variants = [];
         foreach ($filters as $filter) {
             if ($event->getObject()->getContentType() == 'image/svg+xml') {
                 $variants[$filter] = $provider->getUrl($event->getObject());
             } else {
                 $variants[$filter] = $this->cacheManager->getBrowserPath($reference, $filter);
             }
         }
         $event->getVisitor()->addData('images', $variants);
     }
     $event->getVisitor()->addData('original', $provider->getUrl($event->getObject()));
 }
Ejemplo n.º 2
0
 /**
  * on post serialize
  *
  * @param ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     $staticUris = $event->getObject()->getStaticUris();
     if (!empty($staticUris)) {
         $event->getVisitor()->addData('uri', $staticUris);
         return;
     }
     $event->getVisitor()->addData('uri', $this->imageUrlManager->getUrls($event->getObject()));
 }
Ejemplo n.º 3
0
 public function onPostSerialize(ObjectEvent $event)
 {
     $embeds = $this->embedsFactory->create($event->getObject(), $event->getContext());
     $links = $this->linksFactory->createLinks($event->getObject(), $event->getContext());
     if (count($links) > 0) {
         $this->xmlSerializer->serializeLinks($links, $event->getVisitor());
     }
     if (count($embeds) > 0) {
         $this->xmlSerializer->serializeEmbedded($embeds, $event->getVisitor(), $event->getContext());
     }
 }
Ejemplo n.º 4
0
 /**
  * @param ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     $object = $event->getObject();
     // getSubscribedEvents doesn't seem to support parent classes
     if (!$object instanceof Content) {
         return;
     }
     if (false !== ($coverImage = $this->getCoverImage($object))) {
         $event->getVisitor()->addData('coverImage', $coverImage);
     }
     $event->getVisitor()->addData('path', $this->router->generate('_content', ['slug' => $object->getSlug()]));
 }
Ejemplo n.º 5
0
 /**
  * @param ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     $attribures = $event->getContext()->attributes;
     if ($attribures->containsKey('wallet_data')) {
         /** @var Wallet $wallet */
         $wallet = $event->getObject();
         /** @var Some $walletData */
         $walletData = $attribures->get('wallet_data')->get()[$wallet->getId()];
         $event->getVisitor()->addData('withdrawnAmount', $walletData['withdrawnAmount']);
         $event->getVisitor()->addData('lastOperationDate', $walletData['lastOperationDate']);
     }
 }
Ejemplo n.º 6
0
 public function setUp()
 {
     $this->user = $this->prophesize(UserInterface::class);
     $this->token = $this->prophesize(TokenInterface::class);
     $this->token->getUser()->willReturn($this->user);
     $this->accessControlManager = $this->prophesize(AccessControlManagerInterface::class);
     $this->tokenStorage = $this->prophesize(TokenStorageInterface::class);
     $this->tokenStorage->getToken()->willReturn($this->token->reveal());
     $this->securedEntitySubscriber = new SecuredEntitySubscriber($this->accessControlManager->reveal(), $this->tokenStorage->reveal());
     $this->visitor = $this->prophesize(GenericSerializationVisitor::class);
     $this->objectEvent = $this->prophesize(ObjectEvent::class);
     $this->objectEvent->getVisitor()->willReturn($this->visitor);
 }
Ejemplo n.º 7
0
 /**
  * Adds the hash of the given object to its serialization.
  *
  * @param ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     $object = $event->getObject();
     // FIXME This can be removed, as soon as we've got rid of all ApiEntities.
     if ($object instanceof ApiWrapper) {
         $object = $object->getEntity();
     }
     if (!$object instanceof AuditableInterface && !$object instanceof LocalizedAuditableBehavior) {
         return;
     }
     if (!$event->getVisitor() instanceof GenericSerializationVisitor) {
         return;
     }
     $event->getVisitor()->addData('_hash', $this->hasher->hash($object));
 }
Ejemplo n.º 8
0
 public function onPostSerialize(ObjectEvent $event)
 {
     $object = $event->getObject();
     $context = $event->getContext();
     $context->startVisiting($object);
     $embeddeds = $this->embeddedsFactory->create($object, $context);
     $links = $this->linksFactory->create($object, $context);
     if (count($links) > 0) {
         $this->xmlSerializer->serializeLinks($links, $event->getVisitor(), $context);
     }
     if (count($embeddeds) > 0) {
         $this->xmlSerializer->serializeEmbeddeds($embeddeds, $event->getVisitor(), $context);
     }
     $context->stopVisiting($object);
 }
Ejemplo n.º 9
0
 public function onPostSerialize(ObjectEvent $event)
 {
     $object = $event->getObject();
     $context = $event->getContext();
     $embeddeds = $this->embeddedsFactory->create($object, $context);
     $links = $this->linksFactory->create($object, $context);
     $embeddeds = $this->embeddedsInlineDeferrer->handleItems($object, $embeddeds, $context);
     $links = $this->linksInlineDeferrer->handleItems($object, $links, $context);
     if (count($links) > 0) {
         $this->jsonSerializer->serializeLinks($links, $event->getVisitor(), $context);
     }
     if (count($embeddeds) > 0) {
         $this->jsonSerializer->serializeEmbeddeds($embeddeds, $event->getVisitor(), $context);
     }
 }
 /**
  * translate all strings marked as multi lang
  *
  * @param ObjectEvent $event serialization event
  *
  * @return void
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     $object = $event->getObject();
     foreach ($this->localizedFields[\spl_object_hash($object)] as $field => $value) {
         $event->getVisitor()->addData($field, $this->utils->getTranslatedField($value));
     }
 }
 public function onPostSerialize(ObjectEvent $event)
 {
     /**
      * @var JsonSerializationVisitor $visitor
      */
     $visitor = $event->getVisitor();
     $object = $event->getObject();
     $annotations = $this->annotationReader->getClassAnnotations(new \ReflectionObject($object));
     $links = array();
     foreach ($annotations as $annotation) {
         if ($annotation instanceof Link) {
             if ($annotation->url) {
                 $uri = $this->evaluate($annotation->url, $object);
             } else {
                 $uri = $this->router->generate($annotation->route, $this->resolveParams($annotation->params, $object));
             }
             // allow a blank URI to be an optional link
             if ($uri) {
                 $links[$annotation->name] = $uri;
             }
         }
     }
     if ($links) {
         $visitor->addData('_links', $links);
     }
 }
Ejemplo n.º 12
0
 public function onPostSerialize(ObjectEvent $event)
 {
     global $kernel;
     $imageProvider = $kernel->getContainer()->get('sonata.media.provider.image');
     $media = $event->getObject();
     $visitor = $event->getVisitor();
     $event->getVisitor()->addData('url', $imageProvider->generatePublicUrl($media, 'reference'));
     $visitor->addData('cdn_is_flushable', $media->getCdnIsFlushable());
     $visitor->addData('cdn_status', $media->getCdnStatus());
     $visitor->addData('cdn_flush_at', $media->getCdnFlushAt());
     $visitor->addData('binary_content', $media->getBinaryContent());
     $visitor->addData('previous_provider_reference', $media->getProviderReference());
     $visitor->addData('length', $media->getLength());
     $visitor->addData('id', $media->getId());
     $visitor->addData('enabled', $media->getEnabled());
 }
Ejemplo n.º 13
0
 /**
  * Method called on serializer.post_serialize event for Page object.
  *
  * @param \JMS\Serializer\EventDispatcher\ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     if ($this->container->has('routing')) {
         $uri = $this->container->get('routing')->getUri($event->getObject()->getUrl());
         $event->getVisitor()->addData('uri', $uri);
     }
 }
Ejemplo n.º 14
0
 public function onPostSerialize(ObjectEvent $event)
 {
     $object = $event->getObject();
     if (method_exists($object, 'display')) {
         foreach ($event->getObject()->display() as $itemKey => $item) {
             if (is_object($item) && method_exists($item, 'count') && !is_string($item)) {
                 try {
                     $visitor = $event->getVisitor();
                     if ($visitor instanceof JsonSerializationVisitor) {
                         $event->getVisitor()->addData($itemKey . '_count', $item->count());
                     }
                 } catch (\Exception $e) {
                     return;
                 }
             }
         }
     }
 }
Ejemplo n.º 15
0
 /**
  * Adds a flag to indicate if the document has children.
  *
  * @param ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     $document = $event->getObject();
     if (!$document instanceof ChildrenBehavior || !$this->documentRegistry->hasDocument($document)) {
         return;
     }
     $visitor = $event->getVisitor();
     $visitor->addData('hasSub', $this->documentInspector->hasChildren($document));
 }
Ejemplo n.º 16
0
 /**
  * Adds the identifier of the parent document to the serialization.
  *
  * @param ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     $visitor = $event->getVisitor();
     $document = $event->getObject();
     if (!$document instanceof ParentBehavior || !$document->getParent() instanceof UuidBehavior) {
         return;
     }
     $visitor->addData('parentUuid', $document->getParent()->getUuid());
 }
Ejemplo n.º 17
0
 /**
  * Adds the enabled shadow languages to the serialization.
  *
  * @param ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     $document = $event->getObject();
     if (!$document instanceof ShadowLocaleBehavior || !$this->documentRegistry->hasDocument($document)) {
         return;
     }
     $visitor = $event->getVisitor();
     $visitor->addData('enabledShadowLanguages', $this->documentInspector->getShadowLocales($document));
 }
 /**
  * @param ObjectEvent $event
  */
 public function onObjectPostSerialize(ObjectEvent $event)
 {
     /** @var JsonSerializationVisitor $visitor */
     $visitor = $event->getVisitor();
     $additionalData = $this->serializationHelper->getAdditionalData($event->getObject());
     foreach ($additionalData as $key => $value) {
         $visitor->addData($key, $value);
     }
 }
Ejemplo n.º 19
0
 /**
  * Adds the relative path to the serialization.
  *
  * @param ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     $visitor = $event->getVisitor();
     $document = $event->getObject();
     if (!$document instanceof PathBehavior || !$this->documentRegistry->hasDocument($document)) {
         return;
     }
     $visitor->addData('path', $this->documentInspector->getContentPath($document));
 }
 private function addOpenIdConnectCompatibility(ObjectEvent $event)
 {
     $person = $event->getObject();
     $visitor = $event->getVisitor();
     if (!$person instanceof PersonInterface) {
         return;
     }
     $visitor->addData('picture', $person->getProfilePictureUrl());
     $visitor->addData('email_verified', $person->getEmailConfirmedAt() instanceof \DateTime);
 }
Ejemplo n.º 21
0
 /**
  * Adds the published state to the serialization.
  *
  * @param ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     /** @var RedirectTypeBehavior $document */
     $document = $event->getObject();
     if (!$document instanceof WorkflowStageBehavior) {
         return;
     }
     $visitor = $event->getVisitor();
     $visitor->addData('publishedState', $document->getWorkflowStage() === WorkflowStage::PUBLISHED);
 }
Ejemplo n.º 22
0
 /**
  * Add uniqueid and media-data to serialized data.
  *
  * @param ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     $teaser = $event->getObject();
     $visitor = $event->getVisitor();
     $context = $event->getContext();
     if (!$teaser instanceof Teaser) {
         return;
     }
     $visitor->addData('teaserId', $context->accept(sprintf('%s;%s', $teaser->getType(), $teaser->getId())));
 }
Ejemplo n.º 23
0
 public function onPostSerializeOrderItem(ObjectEvent $event)
 {
     /** @var OrderItemInterface $order */
     $orderItem = $event->getObject();
     $visitor = $event->getVisitor();
     $visitor->addData('unit_price_total', $orderItem->getUnitPriceTotal());
     $visitor->addData('tax_total', $orderItem->getTaxTotal());
     $visitor->addData('unit_tax', $orderItem->getUnitTax());
     $visitor->addData('unit_total', $orderItem->getUnitTotal());
 }
Ejemplo n.º 24
0
 /**
  * Adds the permissions for the current user to the serialization.
  *
  * @param ObjectEvent $event
  */
 public function onPostSerialize(ObjectEvent $event)
 {
     $document = $event->getObject();
     if (!($document instanceof SecurityBehavior && $document instanceof LocaleBehavior && $document instanceof WebspaceBehavior && $this->tokenStorage !== null && $this->tokenStorage->getToken() !== null && $this->tokenStorage->getToken()->getUser() instanceof UserInterface)) {
         return;
     }
     /** @var JsonSerializationVisitor $visitor */
     $visitor = $event->getVisitor();
     $visitor->addData('_permissions', $this->accessControlManager->getUserPermissionByArray($document->getLocale(), ContentAdmin::SECURITY_CONTEXT_PREFIX . $document->getWebspaceName(), $document->getPermissions(), $this->tokenStorage->getToken()->getUser()));
 }
Ejemplo n.º 25
0
 public function onPostSerialize(ObjectEvent $event)
 {
     if (in_array('api', (array) $event->getContext()->attributes->get('groups'))) {
         return;
     }
     $object = $event->getObject();
     $deviceDetector = $this->container->get('mobile_detect.mobile_detector');
     $mediaFormat = 'big1300';
     if ($deviceDetector->isMobile() || $deviceDetector->isTablet()) {
         $mediaFormat = 'big300';
     }
     if ($deviceDetector->isTablet()) {
         $mediaFormat = 'medium';
     }
     $provider = $this->container->get($object->getImage()->getProviderName());
     $formatBig = $provider->getFormatName($object->getImage(), $mediaFormat);
     $formatLow = $provider->getFormatName($object->getImage(), 'big200');
     $event->getVisitor()->addData('lowsrc', $provider->generatePublicUrl($object->getImage(), $formatLow));
     $event->getVisitor()->addData('fullsrc', $provider->generatePublicUrl($object->getImage(), $formatBig));
 }
Ejemplo n.º 26
0
 public function onPostSerialize(ObjectEvent $event)
 {
     $object = $event->getObject();
     // FIXME This should be removed, once all entities are restructured not using the ApiWrapper, possible BC break
     if ($object instanceof ApiWrapper) {
         $object = $object->getEntity();
     }
     if (!$object instanceof SecuredEntityInterface) {
         return;
     }
     $event->getVisitor()->addData('_permissions', $this->accessControlManager->getUserPermissions(new SecurityCondition($object->getSecurityContext(), null, get_class($object), $object->getId()), $this->tokenStorage->getToken()->getUser()));
 }
 public function onPostSerialize(ObjectEvent $event)
 {
     $menu = $event->getObject();
     $visitor = $event->getVisitor();
     if ($menu instanceof MenuItem) {
         if ($menu->isRoute()) {
             $visitor->addData('url', $this->router->generate($menu->getRoute(), $menu->getRouteParameters()), RouterInterface::ABSOLUTE_URL);
         } else {
             $visitor->addData('url', $menu->getUrl());
         }
     }
 }
Ejemplo n.º 28
0
 public function onPostSerialize(ObjectEvent $event)
 {
     $object = $event->getObject();
     $visitor = $event->getVisitor();
     /* @var $visitor GenericSerializationVisitor */
     $path = $this->uploaderHelper->asset($object, 'file');
     $urls = array();
     foreach (array('sq100', 'sq200', '400x225', '800x450') as $pattern) {
         $urls[$pattern] = $this->cacheManager->getBrowserPath($path, sprintf('photos_%s', $pattern));
     }
     $visitor->addData('image_urls', $urls);
 }
Ejemplo n.º 29
0
 public function onPostSerialize(ObjectEvent $event)
 {
     $webspace = $event->getObject();
     $visitor = $event->getVisitor();
     $context = $event->getContext();
     if (!$webspace instanceof Webspace) {
         return;
     }
     $this->appendPortalInformation($webspace, $context, $visitor);
     $this->appendUrls($webspace, $context, $visitor);
     $this->appendCustomUrls($webspace, $context, $visitor);
     $visitor->addData('allLocalizations', $webspace->getAllLocalizations());
 }
Ejemplo n.º 30
0
 public function onPostSerialize(ObjectEvent $event)
 {
     $analytics = $event->getObject();
     if (!$analytics instanceof Analytics) {
         return;
     }
     if ($analytics->isAllDomains()) {
         $metadata = new PropertyMetadata($event->getType()['name'], 'domains');
         $value = new \stdClass();
         $value->domains = true;
         $event->getVisitor()->visitProperty($metadata, $value, $event->getContext());
     }
 }