/**
  * @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())));
         }
     }
 }