From 6e5c040b4feae25dc0a92083803b437c1fe29c26 Mon Sep 17 00:00:00 2001 From: Antony Le Courtes <antony.lecourtes@unicaen.fr> Date: Wed, 4 Sep 2024 15:35:37 +0200 Subject: [PATCH] Ajout de quelques test pour eviter les waring en cas de non utilisation de la config get_recipients_methods --- src/Service/SignatureConfigurationService.php | 10 +++++---- src/Service/SignatureService.php | 22 ++++++++++++------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/Service/SignatureConfigurationService.php b/src/Service/SignatureConfigurationService.php index eecb5e5..4a9ec31 100644 --- a/src/Service/SignatureConfigurationService.php +++ b/src/Service/SignatureConfigurationService.php @@ -127,10 +127,12 @@ class SignatureConfigurationService $methods = $this->configuration->getConfiguration('unicaen-signature.get_recipients_methods'); $return = []; foreach ($methods as $method) { - foreach ($method['options'] as &$option) { - if( is_callable($option['values']) ){ - $values = $option['values']($this->serviceContainer); - $option['values'] = $values; + if(array_key_exists('options', $method)) { + foreach ($method['options'] as &$option) { + if (is_callable($option['values'])) { + $values = $option['values']($this->serviceContainer); + $option['values'] = $values; + } } } $return[] = $method; diff --git a/src/Service/SignatureService.php b/src/Service/SignatureService.php index 54f47b8..7ac9396 100644 --- a/src/Service/SignatureService.php +++ b/src/Service/SignatureService.php @@ -280,7 +280,9 @@ class SignatureService $currentStep['allSignToComplete'] = $step->isAllRecipientsSign(); $currentStep['editable'] = $step->isEditableRecipients(); $currentStep['missing_recipients'] = false; - $currentStep['dynamicRecipients'] = is_callable($method['getRecipients']); + $currentStep['recipient_method'] = $step->getRecipientsMethod(); + $currentStep['options'] = $step->getOptions(); + $currentStep['dynamicRecipients'] = (!empty($method))?is_callable($method['getRecipients']):false; $currentStep['recipients'] = []; $currentStep['observers'] = []; @@ -300,13 +302,17 @@ class SignatureService else { $observers = []; } - if (is_callable($method['getRecipients'])) { - $options = array_merge_recursive($extrasOptions, $step->getOptions()); - $recipientsDatas = $method['getRecipients']($this->getServiceContainer(), $options); - $recipients = array_values($recipientsDatas); - } - else { - $recipients = $step->getOptions()['recipients']; + //Uniquement si on a définit des méthodes dynamiques de récupération dans la config unicaen-signature + if($currentStep['dynamicRecipients']) + { + if (is_callable($method['getRecipients'])) { + $options = array_merge_recursive($extrasOptions, $step->getOptions()); + $recipientsDatas = $method['getRecipients']($this->getServiceContainer(), $options); + $recipients = array_values($recipientsDatas); + } + else { + $recipients = $step->getOptions()['recipients']; + } } if ($recipients == null) { -- GitLab