/** * @param Wiki $wiki * @param Section $section * @param Contribution $contribution */ public function __construct(Document $document, Dropzone $dropzone, $userIds) { $this->document = $document; // Traitement du paramètre "type" : gestion du cas spécifique du type URL. if ($document->getType() == 'url') { $this->type = $document->getUrl(); } elseif (strlen($document->getTitle()) > 0) { $this->type = $document->getTitle(); } else { $this->type = $document->getResourceNode()->getName(); } $this->userIds = $userIds; $this->details = array(); // Récupération du nom et du prénom $this->firstName = $document->getSender()->getFirstName(); $this->lastName = $document->getSender()->getLastName(); parent::__construct($dropzone->getResourceNode(), $this->details); }
/** * @Route( * "/{resourceId}/open/resource/{documentId}", * name="innova_collecticiel_open_resource", * requirements={"resourceId" = "\d+", "documentId" = "\d+"} * ) * @ParamConverter("dropzone", class="InnovaCollecticielBundle:Dropzone", options={"id" = "resourceId"}) * @ParamConverter("document", class="InnovaCollecticielBundle:Document", options={"id" = "documentId"}) * @ParamConverter("user", options={"authenticatedUser" = true}) * @Template() */ public function openResourceAction(Dropzone $dropzone, Document $document, $user) { $this->get('innova.manager.dropzone_voter')->isAllowToOpen($dropzone); if ($document->getType() == 'url') { return $this->redirect($document->getUrl()); } elseif ($document->getType() == 'text' || $document->getType() == 'resource' || $document->getType() == 'file') { /** Issue #27 "il se produit un plantage au niveau de "temporary_access_resource_manager" InnovaERV */ $this->get('innova.temporary_access_resource_manager')->addTemporaryAccess($document->getResourceNode(), $user); $event = new LogDocumentOpenEvent($dropzone, $document->getDrop(), $document); $this->dispatch($event); if ($document->getResourceNode()->getResourceType()->getName() == 'file') { return $this->redirect($this->generateUrl('claro_resource_download') . '?ids[]=' . $document->getResourceNode()->getId()); } else { return $this->redirect($this->generateUrl('claro_resource_open', array('resourceType' => $document->getResourceNode()->getResourceType()->getName(), 'node' => $document->getResourceNode()->getId()))); } } }