diff --git a/config/config.xml.default b/config/config.xml.default index e59a6eddc9c8c54e9d27c6712d032692123e3ee2..3830deddafc17d8ad4519961df8b9d79964fc270 100755 --- a/config/config.xml.default +++ b/config/config.xml.default @@ -33,7 +33,7 @@ <password></password> <offerCode></offerCode> <organizationalUnitCode></organizationalUnitCode> - <forceSignatureId></forceSignatureId> <!-- 1 for provider (fournisseur) signature, 2 for Contralia signature, otherwise use client signature (default) --> + <signatureIdOverride></signatureIdOverride> <!-- 1 for provider (fournisseur) signature, 2 for Contralia signature, leave blank to use client signature (default) --> </docaposteSignature> <!-- Sort by the more secure to the less secure mode --> <signatureModes> diff --git a/src/app/document/controllers/DigitalSignatureController.php b/src/app/document/controllers/DigitalSignatureController.php index c909f2dd06ba9ded162085c563d04498a482ce2b..b98eb1ccda75a72004bfb948188d9c7e6284cf44 100755 --- a/src/app/document/controllers/DigitalSignatureController.php +++ b/src/app/document/controllers/DigitalSignatureController.php @@ -48,18 +48,14 @@ class DigitalSignatureController 'data' => [$args['documentId']] ]); foreach ($args['workflow'] as $position => $currentUserId) { - if (!empty($config['forceSignatureId'])) { - $signatoryId = $config['forceSignatoryId']; - } else { - $signatoryId = DigitalSignatureController::signatory([ - 'config' => $config, - 'documentId' => $args['documentId'], - 'transactionId' => $transactionId, - 'user_id' => $currentUserId['user_id'], - 'position' => $position + 1 - ]); - } - if (!empty($signatoryId['errors'])) { + $signatureId = DigitalSignatureController::signatory([ + 'config' => $config, + 'documentId' => $args['documentId'], + 'transactionId' => $transactionId, + 'user_id' => $currentUserId['user_id'], + 'position' => $position + 1 + ]); + if (!empty($signatureId['errors'])) { DocumentModel::update([ 'set' => ['digital_signature_transaction_id' => null], 'where' => ['id = ?'], @@ -67,8 +63,11 @@ class DigitalSignatureController ]); break; } else { + if (!empty($config['signatureIdOverride'])) { + $signatureId = $config['signatureIdOverride']; + } WorkflowModel::update([ - 'set' => ['digital_signature_id' => $signatoryId], + 'set' => ['digital_signature_id' => $signatureId], 'where' => ['id = ?'], 'data' => [$currentUserId['id']] ]); @@ -95,6 +94,7 @@ class DigitalSignatureController return true; } + public static function getConfig() { $loadedXml = CoreConfigModel::getConfig(); @@ -105,12 +105,12 @@ class DigitalSignatureController 'password' => (string)$loadedXml->docaposteSignature->password, 'offerCode' => (string)$loadedXml->docaposteSignature->offerCode, 'organizationalUnitCode' => (string)$loadedXml->docaposteSignature->organizationalUnitCode, - 'forceSignatureId' => (string)$loadedXml->docaposteSignature->forceSignatureId + 'signatureIdOverride' => (string)$loadedXml->docaposteSignature->signatureIdOverride ]; - if (in_array($config['forceSignatureId'], ['1', '2'])) { - $config['forceSignatureId'] = (int)$config['forceSignatureId']; + if (in_array($config['signatureIdOverride'], ['1', '2'])) { + $config['signatureIdOverride'] = (int)$config['signatureIdOverride']; } else { - $config['forceSignatureId'] = null; + $config['signatureIdOverride'] = null; } return $config; } else {