Example #1
0
 /**
  * Ensures that the validator follows expected behavior
  *
  * @return void
  */
 public function testBasic()
 {
     $valuesExpected = array(array('3f8d07e2', true), array('9f8d07e2', false), array(array('9f8d07e2', '3f8d07e2'), true), array(array('9f8d07e2', '7f8d07e2'), false));
     foreach ($valuesExpected as $element) {
         $validator = new Zend_Validate_File_Hash($element[0]);
         $this->assertEquals($element[1], $validator->isValid(dirname(__FILE__) . '/_files/picture.jpg'), "Tested with " . var_export($element, 1));
     }
     $valuesExpected = array(array(array('ed74c22109fe9f110579f77b053b8bc3', 'algorithm' => 'md5'), true), array(array('4d74c22109fe9f110579f77b053b8bc3', 'algorithm' => 'md5'), false), array(array('4d74c22109fe9f110579f77b053b8bc3', 'ed74c22109fe9f110579f77b053b8bc3', 'algorithm' => 'md5'), true), array(array('1d74c22109fe9f110579f77b053b8bc3', '4d74c22109fe9f110579f77b053b8bc3', 'algorithm' => 'md5'), false));
     foreach ($valuesExpected as $element) {
         $validator = new Zend_Validate_File_Hash($element[0]);
         $this->assertEquals($element[1], $validator->isValid(dirname(__FILE__) . '/_files/picture.jpg'), "Tested with " . var_export($element, 1));
     }
     $validator = new Zend_Validate_File_Hash('3f8d07e2');
     $this->assertFalse($validator->isValid(dirname(__FILE__) . '/_files/nofile.mo'));
     $this->assertTrue(array_key_exists('fileHashNotFound', $validator->getMessages()));
     $files = array('name' => 'test1', 'type' => 'text', 'size' => 200, 'tmp_name' => 'tmp_test1', 'error' => 0);
     $validator = new Zend_Validate_File_Hash('3f8d07e2');
     $this->assertFalse($validator->isValid(dirname(__FILE__) . '/_files/nofile.mo', $files));
     $this->assertTrue(array_key_exists('fileHashNotFound', $validator->getMessages()));
     $files = array('name' => 'testsize.mo', 'type' => 'text', 'size' => 200, 'tmp_name' => dirname(__FILE__) . '/_files/testsize.mo', 'error' => 0);
     $validator = new Zend_Validate_File_Hash('3f8d07e2');
     $this->assertTrue($validator->isValid(dirname(__FILE__) . '/_files/picture.jpg', $files));
     $files = array('name' => 'testsize.mo', 'type' => 'text', 'size' => 200, 'tmp_name' => dirname(__FILE__) . '/_files/testsize.mo', 'error' => 0);
     $validator = new Zend_Validate_File_Hash('9f8d07e2');
     $this->assertFalse($validator->isValid(dirname(__FILE__) . '/_files/picture.jpg', $files));
     $this->assertTrue(array_key_exists('fileHashDoesNotMatch', $validator->getMessages()));
 }
Example #2
0
 /**
  * @param integer $sqArtefato
  * @return boolean
  */
 public function hasImage($sqArtefato, $sqTipoArtefato = null)
 {
     try {
         if ($sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
             $entityArtefato = $this->_getRepository($this->_entityArtefato)->find($sqArtefato);
             $sqTipoArtefato = $entityArtefato->getSqTipoArtefatoAssunto()->getSqTipoArtefato()->getSqTipoArtefato();
             /**
              * se for processo recupera a 1ª peça para verificar se tem imagem
              */
             if ($sqTipoArtefato == \Core_Configuration::getSgdoceTipoArtefatoProcesso()) {
                 $entityArtefatoVinculoPrimeiraPeca = $this->_getRepository($this->_entityArtefatoVinculo)->findOneBy(array('sqArtefatoPai' => $sqArtefato, 'sqTipoVinculoArtefato' => \Core_Configuration::getSgdoceTipoVinculoArtefatoAutuacao()));
                 /**
                  * Não existe vinculo de primeira peça para o processo
                  */
                 if (null === $entityArtefatoVinculoPrimeiraPeca) {
                     return false;
                 }
                 //pega o sqArtefato do pai
                 $sqArtefato = $entityArtefatoVinculoPrimeiraPeca->getSqArtefatoFilho()->getSqArtefato();
             }
         }
         $filePath = $this->getImagePath($sqArtefato);
         if (empty($filePath)) {
             return false;
         }
         $file = sprintf('%1$s%2$s..%2$sdata%2$s%3$s', APPLICATION_PATH, DIRECTORY_SEPARATOR, $filePath);
         if (!file_exists($file)) {
             throw new \Core_Exception_ServiceLayer('Imagem cadastrada, porém não foi encontrado o arquivo da mesma');
         }
         $artefatoImagemEntity = $this->_getArtefatoImageEntity($sqArtefato);
         $hashValidate = new \Zend_Validate_File_Hash(array('hash' => $artefatoImagemEntity->getTxHash(), 'algorithm' => self::HASH_ALGORITHM));
         if (!$hashValidate->isValid($file)) {
             throw new \Core_Exception_ServiceLayer('Autenticidade da imagem violada');
         }
     } catch (\Exception $exp) {
         $message = sprintf('[SGDoc-e] Exception %s in %s(%d): "%s"', get_class($exp), __METHOD__, $sqArtefato, $exp->getMessage());
         error_log($message);
         throw $exp;
     }
     return true;
 }