From 3e2ae47a491aa4e77aad515138dc316aefb3a061 Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Wed, 9 Dec 2020 18:19:05 +0100 Subject: [PATCH] FIX #14565 TIME 0:00 Sign document with certificate --- .../CertificateSignatureController.php | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/app/document/controllers/CertificateSignatureController.php b/src/app/document/controllers/CertificateSignatureController.php index e44ee5ae9d..c25c8e89f4 100755 --- a/src/app/document/controllers/CertificateSignatureController.php +++ b/src/app/document/controllers/CertificateSignatureController.php @@ -14,6 +14,7 @@ namespace Document\controllers; +use Docserver\controllers\DocserverController; use Docserver\models\AdrModel; use Docserver\models\DocserverModel; use SrcCore\models\CoreConfigModel; @@ -153,11 +154,34 @@ class CertificateSignatureController $signer->saveSignature($tmpDocument, $cms); try { $signer->saveSignature($tmpDocument, $cms); - unlink($tmpDocument->getWriter()->getPath()); + // unlink($tmpDocument->getWriter()->getPath()); } catch (\SetaPDF_Signer_Exception_ContentLength $e) { - unlink($tmpDocument->getWriter()->getPath()); + // unlink($tmpDocument->getWriter()->getPath()); $signatureContentLength = $signatureContentLength + 1000; return ['errors' => 'Not enought space for signature', 'newSignatureLength' => $signatureContentLength]; } + + $storeInfos = DocserverController::storeResourceOnDocServer([ + 'encodedFile' => base64_encode(file_get_contents($signedDocumentPath)), + 'format' => 'pdf', + 'docserverType' => 'ESIGN' + ]); + + // if (!empty($storeInfos['errors'])) { + // return ['errors' => $storeInfos['errors']]; + // } + + AdrModel::deleteDocumentAdr([ + 'where' => ['main_document_id = ?', 'type = ?'], + 'data' => [$args['id'], 'ESIGN'] + ]); + AdrModel::createDocumentAdr([ + 'documentId' => $args['id'], + 'type' => 'ESIGN', + 'path' => $storeInfos['path'], + 'filename' => $storeInfos['filename'], + 'fingerprint' => $storeInfos['fingerprint'] + ]); + // unlink($signedDocumentPath); } } -- GitLab