From 6f4b0a802a8b28c97aa8ba4161470787e1bdd270 Mon Sep 17 00:00:00 2001 From: Damien <damien.burel@maarch.org> Date: Mon, 15 Oct 2018 18:29:39 +0200 Subject: [PATCH] FEAT #8504 Calcul fingerprint --- .../attachment/controllers/AttachmentController.php | 10 +++++++++- src/app/convert/controllers/ConvertPdfController.php | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/app/attachment/controllers/AttachmentController.php b/src/app/attachment/controllers/AttachmentController.php index ce232871b9c..7dab358f204 100644 --- a/src/app/attachment/controllers/AttachmentController.php +++ b/src/app/attachment/controllers/AttachmentController.php @@ -19,6 +19,7 @@ use Convert\controllers\ConvertPdfController; use Convert\controllers\ConvertThumbnailController; use Convert\models\AdrModel; use Docserver\models\DocserverModel; +use Docserver\models\DocserverTypeModel; use History\controllers\HistoryController; use Resource\controllers\ResController; use Respect\Validation\Validator; @@ -193,8 +194,9 @@ class AttachmentController $document['docserver_id'] = $attachmentTodisplay['docserver_id']; $document['path'] = $attachmentTodisplay['path']; $document['filename'] = $attachmentTodisplay['filename']; + $document['fingerprint'] = $attachmentTodisplay['fingerprint']; - $docserver = DocserverModel::getByDocserverId(['docserverId' => $document['docserver_id'], 'select' => ['path_template']]); + $docserver = DocserverModel::getByDocserverId(['docserverId' => $document['docserver_id'], 'select' => ['path_template', 'docserver_type_id']]); if (empty($docserver['path_template']) || !file_exists($docserver['path_template'])) { return $response->withStatus(400)->withJson(['errors' => 'Docserver does not exist']); } @@ -205,6 +207,12 @@ class AttachmentController return $response->withStatus(404)->withJson(['errors' => 'Attachment not found on docserver']); } + $docserverType = DocserverTypeModel::getById(['id' => $docserver['docserver_type_id'], 'select' => ['fingerprint_mode']]); + $fingerprint = StoreController::getFingerPrint(['filePath' => $pathToDocument, 'mode' => $docserverType['fingerprint_mode']]); + if (!empty($document['fingerprint']) && $document['fingerprint'] != $fingerprint) { + return $response->withStatus(400)->withJson(['errors' => 'Fingerprints do not match']); + } + $loadedXml = CoreConfigModel::getXmlLoaded(['path' => 'modules/attachments/xml/config.xml']); if ($loadedXml) { $watermark = (array)$loadedXml->CONFIG->watermark; diff --git a/src/app/convert/controllers/ConvertPdfController.php b/src/app/convert/controllers/ConvertPdfController.php index 5ab9d653654..2d8a15540e9 100644 --- a/src/app/convert/controllers/ConvertPdfController.php +++ b/src/app/convert/controllers/ConvertPdfController.php @@ -19,6 +19,7 @@ use Attachment\models\AttachmentModel; use Convert\models\AdrModel; use Docserver\controllers\DocserverController; use Docserver\models\DocserverModel; +use Resource\controllers\StoreController; use Resource\models\ResModel; use SrcCore\models\CoreConfigModel; use SrcCore\models\ValidatorModel; @@ -115,6 +116,7 @@ class ConvertPdfController 'docserverId' => $storeResult['docserver_id'], 'path' => $storeResult['destination_dir'], 'filename' => $storeResult['file_destination_name'], + 'fingerprint' => $storeResult['fingerPrint'] ]); } else { AdrModel::createAttachAdr([ @@ -124,6 +126,7 @@ class ConvertPdfController 'docserverId' => $storeResult['docserver_id'], 'path' => $storeResult['destination_dir'], 'filename' => $storeResult['file_destination_name'], + 'fingerprint' => $storeResult['fingerPrint'] ]); } -- GitLab