From 8d445b2d1d4c5df8179ca4e96073e6daae0ef96a Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Mon, 14 Dec 2020 23:56:04 +0100
Subject: [PATCH] FEAT #14565 TIME 1:30 sometimes signature was not set on
 document

---
 .../CertificateSignatureController.php        |  2 +-
 .../DigitalSignatureController.php            |  2 +-
 .../controllers/DocumentController.php        | 28 ++++++-------------
 3 files changed, 11 insertions(+), 21 deletions(-)

diff --git a/src/app/document/controllers/CertificateSignatureController.php b/src/app/document/controllers/CertificateSignatureController.php
index 47deffc95f..2edc751aeb 100755
--- a/src/app/document/controllers/CertificateSignatureController.php
+++ b/src/app/document/controllers/CertificateSignatureController.php
@@ -151,7 +151,7 @@ class CertificateSignatureController
             $height = $imageXObject->getHeight($width);
 
             $fieldName = $signer->addSignatureField(
-                \SetaPDF_Signer_SignatureField::DEFAULT_FIELD_NAME,
+                'Signature_' . rand(),
                 $signatureInfo['page'],
                 \SetaPDF_Signer_SignatureField::POSITION_LEFT_TOP,
                 ['x' => $signatureInfo['positionX'], 'y' => -$signatureInfo['positionY']],
diff --git a/src/app/document/controllers/DigitalSignatureController.php b/src/app/document/controllers/DigitalSignatureController.php
index ab2bfdf2c6..9679e2f154 100755
--- a/src/app/document/controllers/DigitalSignatureController.php
+++ b/src/app/document/controllers/DigitalSignatureController.php
@@ -198,7 +198,7 @@ class DigitalSignatureController
                 $height = $imageXObject->getHeight($width);
 
                 $fieldName = $signer->addSignatureField(
-                    \SetaPDF_Signer_SignatureField::DEFAULT_FIELD_NAME,
+                    'Signature_' . rand(),
                     $args['signatureInfo']['page'],
                     \SetaPDF_Signer_SignatureField::POSITION_LEFT_TOP,
                     ['x' => $args['signatureInfo']['positionX'], 'y' => -$args['signatureInfo']['positionY']],
diff --git a/src/app/document/controllers/DocumentController.php b/src/app/document/controllers/DocumentController.php
index 4103285b09..67c15d1827 100755
--- a/src/app/document/controllers/DocumentController.php
+++ b/src/app/document/controllers/DocumentController.php
@@ -144,6 +144,7 @@ class DocumentController
         if (empty($adr[0]['count']) && $document['status'] != 'CONVERTING') {
             $configPath = CoreConfigModel::getConfigPath();
             exec("php src/app/convert/scripts/ThumbnailScript.php '{$configPath}' {$args['id']} 'document' '{$GLOBALS['id']}' > /dev/null");
+            $adr[0]['count'] = 1;
         }
 
         $formattedDocument = [
@@ -515,10 +516,10 @@ class DocumentController
             return $response->withStatus(400)->withJson(['errors' => 'Action does not exist']);
         }
 
-        $workflow = WorkflowModel::getCurrentStep(['select' => ['id', 'mode', 'user_id', 'signature_mode', 'digital_signature_id'], 'documentId' => $args['id']]);
-        $libDir   = CoreConfigModel::getLibrariesDirectory();
+        $workflow  = WorkflowModel::getCurrentStep(['select' => ['id', 'mode', 'user_id', 'signature_mode', 'digital_signature_id'], 'documentId' => $args['id']]);
+        $libDir    = CoreConfigModel::getLibrariesDirectory();
         $loadedXml = CoreConfigModel::getConfig();
-        $tmpPath     = CoreConfigModel::getTmpPath();
+        $tmpPath   = CoreConfigModel::getTmpPath();
 
         if ($workflow['mode'] == 'sign' && $workflow['signature_mode'] != 'stamp') {
             if (empty($libDir) || !is_file($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php')) {
@@ -1139,25 +1140,14 @@ class DocumentController
         ValidatorModel::notEmpty($args, ['id']);
         ValidatorModel::intVal($args, ['id']);
 
-        $adr = AdrModel::getDocumentsAdr([
-            'select'  => ['path', 'filename'],
-            'where'   => ['main_document_id = ?', 'type = ?'],
-            'data'    => [$args['id'], 'DOC']
-        ]);
-        if (empty($adr)) {
+        $content = DocumentController::getContentPath(['id' => $args['id'], 'eSignDocument' => false]);
+        if (empty($content)) {
             return ['errors' => 'Document does not exist'];
-        }
-        $docserver = DocserverModel::getByType(['type' => 'DOC', 'select' => ['path']]);
-        if (empty($docserver['path']) || !file_exists($docserver['path'])) {
-            return ['errors' => 'Docserver does not exist'];
-        }
-
-        $pathToDocument = $docserver['path'] . $adr[0]['path'] . $adr[0]['filename'];
-        if (!is_file($pathToDocument) || !is_readable($pathToDocument)) {
-            return ['errors' => 'Document not found on docserver or not readable'];
+        } elseif (!empty($content['errors'])) {
+            return ['errors' => $content['errors']];
         }
 
-        return ['path' => $pathToDocument];
+        return ['path' => $content['path']];
     }
 
     private static function processSignatures(array $args)
-- 
GitLab