/**
  * {@inheritDoc}
  */
 public function setLazaretFile(\Alchemy\Phrasea\Model\Entities\LazaretFile $lazaretFile = NULL)
 {
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'setLazaretFile', array($lazaretFile));
     return parent::setLazaretFile($lazaretFile);
 }
Ejemplo n.º 2
0
 /**
  * Send a package file to lazaret
  *
  * @param File           $file    The package file
  * @param Visa           $visa    The visa related to the package file
  * @param LazaretSession $session The current LazaretSession
  * @param Boolean        $forced  True if the file has been forced to quarantine
  *
  * @return LazaretFile
  */
 protected function createLazaret(File $file, Visa $visa, LazaretSession $session, $forced)
 {
     $date = new \DateTime();
     $file->addAttribute(new MetadataAttr(new Metadata(new TfQuarantine(), new MonoValue($date->format('Y/m/d H:i:s')))));
     $lazaretPathname = $this->bookLazaretPathfile($file->getOriginalName());
     $lazaretPathnameThumb = $this->bookLazaretPathfile($file->getOriginalName(), 'thumb');
     $this->app['filesystem']->copy($file->getFile()->getRealPath(), $lazaretPathname, true);
     $spec = new ImageSpec();
     $spec->setResizeMode(ImageSpec::RESIZE_MODE_INBOUND_FIXEDRATIO);
     $spec->setDimensions(375, 275);
     try {
         $this->app['media-alchemyst']->turnInto($file->getFile()->getPathname(), $lazaretPathnameThumb, $spec);
     } catch (MediaAlchemystException $e) {
     }
     $lazaretFile = new LazaretFile();
     $lazaretFile->setBaseId($file->getCollection()->get_base_id());
     $lazaretFile->setSha256($file->getSha256());
     $lazaretFile->setUuid($file->getUUID());
     $lazaretFile->setOriginalName($file->getOriginalName());
     $lazaretFile->setForced($forced);
     $lazaretFile->setFilename(pathinfo($lazaretPathname, PATHINFO_BASENAME));
     $lazaretFile->setThumbFileName(pathinfo($lazaretPathnameThumb, PATHINFO_BASENAME));
     $lazaretFile->setSession($session);
     $this->app['orm.em']->persist($lazaretFile);
     foreach ($file->getAttributes() as $fileAttribute) {
         $attribute = new LazaretAttribute();
         $attribute->setName($fileAttribute->getName());
         $attribute->setValue($fileAttribute->asString());
         $attribute->setLazaretFile($lazaretFile);
         $lazaretFile->addAttribute($attribute);
         $this->app['orm.em']->persist($attribute);
     }
     foreach ($visa->getResponses() as $response) {
         if (!$response->isOk()) {
             $check = new LazaretCheck();
             $check->setCheckClassname(get_class($response->getChecker()));
             $check->setLazaretFile($lazaretFile);
             $lazaretFile->addCheck($check);
             $this->app['orm.em']->persist($check);
         }
     }
     $this->app['orm.em']->flush();
     return $lazaretFile;
 }