Skip to content
Snippets Groups Projects
Commit 453222fd authored by Jean-Laurent DUZANT's avatar Jean-Laurent DUZANT
Browse files

FIX #20175 TIME 2:15 can use many signature methods in a workflow

parent 3f4f2434
No related branches found
No related tags found
No related merge requests found
...@@ -1067,14 +1067,8 @@ class DocumentController ...@@ -1067,14 +1067,8 @@ class DocumentController
$docserver = DocserverModel::getByType(['type' => 'ESIGN', 'select' => ['path']]); $docserver = DocserverModel::getByType(['type' => 'ESIGN', 'select' => ['path']]);
$pathToDocument = $docserver['path'] . $adr[0]['path'] . $adr[0]['filename']; $pathToDocument = $docserver['path'] . $adr[0]['path'] . $adr[0]['filename'];
if ($loadedXml->metaSignSignature->enable == 'true') { if ($loadedXml->metaSignSignature->enable == 'true' && $workflow['signature_mode'] == 'eidas_metasign') {
$adr = AdrModel::getDocumentsAdr([ $pathToDocument = MetaSignSignatureController::getDocumentPath(['documentId' => (int) $args['id']]);
'select' => ['path', 'filename'],
'where' => ['main_document_id = ?', 'type = ?'],
'data' => [$args['id'], 'DOC']
]);
$docserver = DocserverModel::getByType(['type' => 'DOC', 'select' => ['path']]);
$pathToDocument = $docserver['path'] . $adr[0]['path'] . $adr[0]['filename'];
} }
$tmpPath = CoreConfigModel::getTmpPath(); $tmpPath = CoreConfigModel::getTmpPath();
$signedDocumentPath = $tmpPath . $GLOBALS['id'] . '_' . rand() . '_signedDocument.pdf'; $signedDocumentPath = $tmpPath . $GLOBALS['id'] . '_' . rand() . '_signedDocument.pdf';
...@@ -1114,7 +1108,7 @@ class DocumentController ...@@ -1114,7 +1108,7 @@ class DocumentController
$signPosX = ($signature['positionX'] * $format['width']) / 100; $signPosX = ($signature['positionX'] * $format['width']) / 100;
$signPosY = ($signature['positionY'] * $format['height']) / 100; $signPosY = ($signature['positionY'] * $format['height']) / 100;
} }
if ($loadedXml->docaposteSignature->enable == 'true') { if ($loadedXml->docaposteSignature->enable == 'true' && !empty($workflow['digital_signature_id'])) {
$return = DigitalSignatureController::signHashes([ $return = DigitalSignatureController::signHashes([
'signatureId' => $workflow['digital_signature_id'], 'signatureId' => $workflow['digital_signature_id'],
'documentId' => $args['id'], 'documentId' => $args['id'],
...@@ -1127,7 +1121,7 @@ class DocumentController ...@@ -1127,7 +1121,7 @@ class DocumentController
], ],
'isLastSignature' => !isset($body['signatures'][$key + 1]) 'isLastSignature' => !isset($body['signatures'][$key + 1])
]); ]);
} else if ($loadedXml->metaSignSignature->enable == 'true') { } else if ($loadedXml->metaSignSignature->enable == 'true' && $workflow['signature_mode'] == 'eidas_metasign') {
$return = MetaSignSignatureController::signDocument([ $return = MetaSignSignatureController::signDocument([
'documentId' => (int) $args['id'], 'documentId' => (int) $args['id'],
'signatureInfo' => [ 'signatureInfo' => [
...@@ -1148,19 +1142,23 @@ class DocumentController ...@@ -1148,19 +1142,23 @@ class DocumentController
} }
} }
} }
if (!$imageSignature && $loadedXml->docaposteSignature->enable == 'true') { if (!$imageSignature && $loadedXml->docaposteSignature->enable == 'true' && !empty($workflow['digital_signature_id'])) {
$return = DigitalSignatureController::signHashes(['signatureId' => $workflow['digital_signature_id'], 'documentId' => $args['id'], 'isLastSignature' => true]); $return = DigitalSignatureController::signHashes(['signatureId' => $workflow['digital_signature_id'], 'documentId' => $args['id'], 'isLastSignature' => true]);
if (!empty($return['errors'])) { if (!empty($return['errors'])) {
return $response->withStatus(400)->withJson($return); return $response->withStatus(400)->withJson($return);
} }
} }
if (!$imageSignature && $loadedXml->metaSignSignature->enable == 'true') { if (!$imageSignature && $loadedXml->metaSignSignature->enable == 'true' && $workflow['signature_mode'] == 'eidas_metasign') {
$return = MetaSignSignatureController::signDocument(['documentId' => (int) $args['id'], 'isLastSignature' => true]); $return = MetaSignSignatureController::signDocument(['documentId' => (int) $args['id'], 'isLastSignature' => true]);
if (!empty($return['errors'])) { if (!empty($return['errors'])) {
return $response->withStatus($return['code'])->withJson(['errors' => $return['errors']]); return $response->withStatus($return['code'])->withJson(['errors' => $return['errors']]);
} }
} }
} elseif (DocumentController::ACTIONS[$args['actionId']] == 'REF' && $workflow['mode'] == 'sign' && $loadedXml->docaposteSignature->enable == 'true') { } elseif (DocumentController::ACTIONS[$args['actionId']] == 'REF' &&
$workflow['mode'] == 'sign' &&
$loadedXml->docaposteSignature->enable == 'true' &&
!empty($workflow['digital_signature_id'])) {
$return = DigitalSignatureController::abort(['signatureId' => $workflow['digital_signature_id'], 'documentId' => $args['id']]); $return = DigitalSignatureController::abort(['signatureId' => $workflow['digital_signature_id'], 'documentId' => $args['id']]);
if (!empty($return['errors'])) { if (!empty($return['errors'])) {
return $response->withStatus(400)->withJson($return); return $response->withStatus(400)->withJson($return);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment