diff --git a/src/app/convert/controllers/ConvertThumbnailController.php b/src/app/convert/controllers/ConvertThumbnailController.php index 03c4dde163692c007c2240249b984371b4046281..f0e2664848e0ca903b97526048bd1d588bf91796 100755 --- a/src/app/convert/controllers/ConvertThumbnailController.php +++ b/src/app/convert/controllers/ConvertThumbnailController.php @@ -62,15 +62,9 @@ class ConvertThumbnailController $filename = pathinfo($pathToDocument, PATHINFO_FILENAME); $tmpPath = CoreConfigModel::getTmpPath(); - if (!empty($args['configPath'])) { - $configPath = $args['configPath']; - } else { - $configPath = CoreConfigModel::getConfigPath(); - } - - $overrideFile = "{$configPath}/override/setasign/fpdi_pdf-parser/src/autoload.php"; - if (file_exists($overrideFile)) { - require_once($overrideFile); + $libPath = CoreConfigModel::getFpdiPdfParserLibrary(); + if (file_exists($libPath)) { + require_once($libPath); } $pdf = new Fpdi('P', 'pt'); $pageCount = $pdf->setSourceFile($pathToDocument); @@ -147,15 +141,9 @@ class ConvertThumbnailController return ['errors' => 'Document not found on docserver or not readable']; } - if (!empty($args['configPath'])) { - $configPath = $args['configPath']; - } else { - $configPath = CoreConfigModel::getConfigPath(); - } - - $overrideFile = "{$configPath}/override/setasign/fpdi_pdf-parser/src/autoload.php"; - if (file_exists($overrideFile)) { - require_once($overrideFile); + $libPath = CoreConfigModel::getFpdiPdfParserLibrary(); + if (file_exists($libPath)) { + require_once($libPath); } $pdf = new Fpdi('P', 'pt'); $pageCount = $pdf->setSourceFile($pathToDocument); diff --git a/src/app/convert/scripts/ThumbnailScript.php b/src/app/convert/scripts/ThumbnailScript.php index fad78959cb41128b094199b0f47fc6dabae02cd1..fe9b0a22da4a130abefb2b92f347ffad0964590a 100644 --- a/src/app/convert/scripts/ThumbnailScript.php +++ b/src/app/convert/scripts/ThumbnailScript.php @@ -46,9 +46,9 @@ class ThumbnailScript ]); if (isset($args['page'])) { - $isConverted = ConvertThumbnailController::convertOnePage(['configPath' => $args['configPath'], 'id' => $args['id'], 'type' => $args['type'], 'page' => $args['page']]); + $isConverted = ConvertThumbnailController::convertOnePage(['id' => $args['id'], 'type' => $args['type'], 'page' => $args['page']]); } else { - $isConverted = ConvertThumbnailController::convert(['configPath' => $args['configPath'], 'id' => $args['id'], 'type' => $args['type']]); + $isConverted = ConvertThumbnailController::convert(['id' => $args['id'], 'type' => $args['type']]); } if (!empty($isConverted['errors'])) { DocumentModel::update([ diff --git a/src/app/document/controllers/DigitalSignatureController.php b/src/app/document/controllers/DigitalSignatureController.php index 41259284f05cca03267f4816512b099907a7a632..7ed3bfe14a718a3a1e41daa474af445145d17b31 100755 --- a/src/app/document/controllers/DigitalSignatureController.php +++ b/src/app/document/controllers/DigitalSignatureController.php @@ -183,9 +183,9 @@ class DigitalSignatureController return ['errors' => 'Document not found on docserver or not readable']; } - $libDir = CoreConfigModel::getLibrariesDirectory(); - if (!empty($libDir) && is_file($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php')) { - require_once($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php'); + $libPath = CoreConfigModel::getSetaPdfSignerLibrary(); + if (!empty($libPath) && is_file($libPath)) { + require_once($libPath); $tmpPath = CoreConfigModel::getTmpPath(); $signedDocumentPath = $tmpPath . $GLOBALS['id'] . '_' . rand() . '_signedDocument.pdf'; @@ -327,9 +327,9 @@ class DigitalSignatureController public static function timestampHashes($args = []) { - $libDir = CoreConfigModel::getLibrariesDirectory(); - if (!empty($libDir) && is_file($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php')) { - require_once($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php'); + $libPath = CoreConfigModel::getSetaPdfSignerLibrary(); + if (!empty($libPath) && is_file($libPath)) { + require_once($libPath); $tmpPath = CoreConfigModel::getTmpPath(); $signedDocumentPath = $tmpPath . $GLOBALS['id'] . '_' . rand() . '_tsDocument.pdf'; diff --git a/src/app/document/controllers/DocumentController.php b/src/app/document/controllers/DocumentController.php index c61799e38735195f915ba0481b99881bd3f37d14..d10f865ee7cc6b15b539c3a07c1794c2ea72e890 100644 --- a/src/app/document/controllers/DocumentController.php +++ b/src/app/document/controllers/DocumentController.php @@ -539,10 +539,10 @@ class DocumentController } - $libDir = CoreConfigModel::getLibrariesDirectory(); + $libPath = CoreConfigModel::getSetaPdfSignerLibrary(); $loadedJson = CoreConfigModel::getConfig(); if (($loadedJson['docaposteSignature']['enable'] || $loadedJson['metaSignSignature']['enable']) && - ($hasEidas || $hasMetaSignSignature) && (empty($libDir) || !is_file($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php'))) { + ($hasEidas || $hasMetaSignSignature) && (empty($libPath) || !is_file($libPath))) { return $response->withStatus(500)->withJson(['errors' => 'SetaPDF-Signer library is not installed', 'lang' => 'setAPdfSignerError']); } @@ -565,9 +565,9 @@ class DocumentController return $response->withStatus(400)->withJson(['errors' => 'Document is not a pdf']); } - - if (!empty($libDir) && is_file($libDir . 'SetaPDF-FormFiller-Full/library/SetaPDF/Autoload.php')) { - require_once($libDir . 'SetaPDF-FormFiller-Full/library/SetaPDF/Autoload.php'); + $libPath = CoreConfigModel::getSetaPdfFormFillerLibrary(); + if (!empty($libPath) && is_file($libPath)) { + require_once($libPath); $targetFile = CoreConfigModel::getTmpPath() . "tmp_file_{$GLOBALS['id']}_" .rand(). "_target_watermark.pdf"; $flattenedFile = CoreConfigModel::getTmpPath() . "tmp_file_{$GLOBALS['id']}_" .rand(). "_watermark.pdf"; @@ -680,10 +680,9 @@ class DocumentController ]); $firstWorkflowId = null; - $configPath = CoreConfigModel::getConfigPath(); - $overrideFile = "{$configPath}/override/setasign/fpdi_pdf-parser/src/autoload.php"; - if (file_exists($overrideFile)) { - require_once($overrideFile); + $libPath = CoreConfigModel::getFpdiPdfParserLibrary(); + if (file_exists($libPath)) { + require_once($libPath); } $pdf = new Fpdi('P', 'pt'); $veryTemporaryPath = CoreConfigModel::getTmpPath() . "tmp_file_{$GLOBALS['id']}_" .rand(). "_coord.pdf"; @@ -850,15 +849,15 @@ class DocumentController } - $libDir = CoreConfigModel::getLibrariesDirectory(); + $libPath = CoreConfigModel::getSetaPdfSignerLibrary(); $loadedJson = 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')) { + if (empty($libPath) || !is_file($libPath)) { return $response->withStatus(500)->withJson(['errors' => 'SetaPDF-Signer library is not installed', 'lang' => 'setAPdfSignerError']); } - require_once($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php'); + require_once($libPath); if (DocumentController::ACTIONS[$args['actionId']] == 'VAL' && !in_array($workflow['signature_mode'], ['eidas', 'eidas_metasign'])) { $url = UrlController::getCoreUrl(); @@ -945,10 +944,9 @@ class DocumentController $tmpFilename = $tmpPath . $GLOBALS['id'] . '_' . rand() . 'adr.pdf'; copy($pathToDocument, $tmpFilename); - $configPath = CoreConfigModel::getConfigPath(); - $overrideFile = "{$configPath}/override/setasign/fpdi_pdf-parser/src/autoload.php"; - if (file_exists($overrideFile)) { - require_once($overrideFile); + $libPath = CoreConfigModel::getFpdiPdfParserLibrary(); + if (file_exists($libPath)) { + require_once($libPath); } $pdf = new Fpdi('P'); $pagesNumber = $pdf->setSourceFile($tmpFilename); @@ -1680,10 +1678,9 @@ class DocumentController $tmpFilename = $tmpPath . $GLOBALS['id'] . '_' . rand() . 'adr.pdf'; copy($args['path'], $tmpFilename); - $configPath = CoreConfigModel::getConfigPath(); - $overrideFile = "{$configPath}/override/setasign/fpdi_pdf-parser/src/autoload.php"; - if (file_exists($overrideFile)) { - require_once($overrideFile); + $libPath = CoreConfigModel::getFpdiPdfParserLibrary(); + if (file_exists($libPath)) { + require_once($libPath); } $pdf = new Fpdi('P'); $pagesNumber = $pdf->setSourceFile($tmpFilename); diff --git a/src/app/document/controllers/MetaSignSignatureController.php b/src/app/document/controllers/MetaSignSignatureController.php index 995ceb439190bd229db9062c315ded906a66c9f4..5590204d3d008da5f359942f2743d63f22c23c5f 100644 --- a/src/app/document/controllers/MetaSignSignatureController.php +++ b/src/app/document/controllers/MetaSignSignatureController.php @@ -164,11 +164,11 @@ class MetaSignSignatureController return $pathToDocument; } - $libDir = CoreConfigModel::getLibrariesDirectory(); - if (empty($libDir) || !is_file($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php')) { + $libPath = CoreConfigModel::getSetaPdfSignerLibrary(); + if (empty($libPath) || !is_file($libPath)) { return ['code' => 404, 'errors' => 'SetaPDF-Signer library is not installed']; } - require_once($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php'); + require_once($libPath); $tmpPath = CoreConfigModel::getTmpPath(); $signedDocumentPath = $tmpPath . $GLOBALS['id'] . '_' . rand() . '_signedDocument.pdf'; diff --git a/src/app/document/controllers/WatermarkController.php b/src/app/document/controllers/WatermarkController.php index 8c8de05acc68a9fc7b45e34b5ff44ed22b29cfba..bc040493552abb2ce43a6119307114a04339bb97 100644 --- a/src/app/document/controllers/WatermarkController.php +++ b/src/app/document/controllers/WatermarkController.php @@ -55,10 +55,9 @@ class WatermarkController $text = str_replace("[{$value}]", $tmp, $text); } - $configPath = CoreConfigModel::getConfigPath(); - $overrideFile = "{$configPath}/override/setasign/fpdi_pdf-parser/src/autoload.php"; - if (file_exists($overrideFile)) { - require_once($overrideFile); + $libPath = CoreConfigModel::getFpdiPdfParserLibrary(); + if (file_exists($libPath)) { + require_once($libPath); } try { diff --git a/src/core/controllers/AuthenticationController.php b/src/core/controllers/AuthenticationController.php index d43ec5536bb5c3337b7c97b2f8d57309432b1314..a8256349f12a936c9df43997c74a1de3b9d260ee 100755 --- a/src/core/controllers/AuthenticationController.php +++ b/src/core/controllers/AuthenticationController.php @@ -333,12 +333,12 @@ class AuthenticationController private static function azureSamlConnection() { - $libDir = CoreConfigModel::getLibrariesDirectory(); - if (!is_file($libDir . 'simplesamlphp/lib/_autoload.php')) { + $libPath = CoreConfigModel::getSimpleSamlLibrary(); + if (!is_file($libPath)) { return ['errors' => 'Library simplesamlphp not present']; } + require_once($libPath); - require_once($libDir . 'simplesamlphp/lib/_autoload.php'); $as = new \SimpleSAML\Auth\Simple('default-sp'); $as->requireAuth([ 'ReturnTo' => UrlController::getCoreUrl(), diff --git a/src/core/models/CoreConfigModel.php b/src/core/models/CoreConfigModel.php index 86625b0890c1f6f3c931305d68202c0a2fa9a499..2317b257b8092275b4092b45360620e69e377ede 100755 --- a/src/core/models/CoreConfigModel.php +++ b/src/core/models/CoreConfigModel.php @@ -132,6 +132,53 @@ class CoreConfigModel return $librariesDirectory; } + public static function getSetaPdfFormFillerLibrary() + { + $libDir = CoreConfigModel::getLibrariesDirectory(); + $libPath = null; + + if (!empty($libDir) && is_file($libDir . 'SetaPDF-FormFiller-Full/library/SetaPDF/Autoload.php')) { + $libPath = $libDir . 'SetaPDF-FormFiller-Full/library/SetaPDF/Autoload.php'; + } + return $libPath; + } + + public static function getSetaPdfSignerLibrary() + { + $libDir = CoreConfigModel::getLibrariesDirectory(); + $libPath = null; + + if (!empty($libDir) && is_file($libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php')) { + $libPath = $libDir . 'SetaPDF-Signer/library/SetaPDF/Autoload.php'; + } + return $libPath; + } + + public static function getFpdiPdfParserLibrary() + { + $configPath = CoreConfigModel::getConfigPath(); + $libDir = CoreConfigModel::getLibrariesDirectory(); + $libPath = null; + + if (!empty($libDir) && is_file($libDir . 'FPDI-PDF-Parser/src/autoload.php')) { + $libPath = $libDir . 'FPDI-PDF-Parser/src/autoload.php'; + } elseif (!empty($configPath) && is_file("{$configPath}/override/setasign/fpdi_pdf-parser/src/autoload.php")) { + $libPath = "{$configPath}/override/setasign/fpdi_pdf-parser/src/autoload.php"; + } + return $libPath; + } + + public static function getSimpleSamlLibrary() + { + $libDir = CoreConfigModel::getLibrariesDirectory(); + $libPath = null; + + if (!empty($libDir) && is_file($libDir . 'simplesamlphp/lib/_autoload.php')) { + $libPath = $libDir . 'simplesamlphp/lib/_autoload.php'; + } + return $libPath; + } + public static function getUniqueId() { $parts = explode('.', microtime(true));