From 586e76f2010593e1ed18ced39a4e76b64dddc12c Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Fri, 5 Jul 2019 09:08:44 +0100
Subject: [PATCH] FIX #10825 TIME 0:10 connection with maarchParapheur

---
 .../actions/sendToExternalNoteBook.php               |  2 +-
 .../actions/sendToExternalSignatureBook.php          |  2 +-
 .../action/controllers/ActionMethodController.php    |  3 +--
 .../controllers/MaarchParapheurController.php        | 12 +++++++++++-
 4 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/apps/maarch_entreprise/actions/sendToExternalNoteBook.php b/apps/maarch_entreprise/actions/sendToExternalNoteBook.php
index 465ceb8e40c..2af24b3428e 100755
--- a/apps/maarch_entreprise/actions/sendToExternalNoteBook.php
+++ b/apps/maarch_entreprise/actions/sendToExternalNoteBook.php
@@ -129,7 +129,7 @@ function manage_form($arr_id, $history, $id_action, $label_action, $status, $col
             $sendedInfo         = \ExternalSignatoryBook\controllers\MaarchParapheurController::sendDatas([
                 'config'             => $config,
                 'resIdMaster'        => $res_id,
-                'processingUser'     => $processingUserInfo['login'],
+                'processingUser'     => $processingUser,
                 'objectSent'         => 'mail',
                 'userId'             => $_SESSION['user']['UserId']
             ]);
diff --git a/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php b/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php
index 291be885db4..caa85487d1d 100755
--- a/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php
+++ b/apps/maarch_entreprise/actions/sendToExternalSignatureBook.php
@@ -249,7 +249,7 @@ function manage_form($arr_id, $history, $id_action, $label_action, $status, $col
                     if (empty($externalId['maarchParapheur'])) {
                         return ['error' => 'Some users do not exist in Maarch Parapheur'];
                     }
-                    $workflow[] = ['userId' => $externalId['maarchParapheur'], 'mode' => ($user['requested_signature'] ? 'sign' : 'visa')];
+                    $workflow[] = ['externalId' => $externalId['maarchParapheur'], 'action' => ($user['requested_signature'] ? 'sign' : 'visa')];
                 }
 
                 $sendedInfo = \ExternalSignatoryBook\controllers\MaarchParapheurController::sendDatas([
diff --git a/src/app/action/controllers/ActionMethodController.php b/src/app/action/controllers/ActionMethodController.php
index 5732f8c4a2d..33dc89016b0 100644
--- a/src/app/action/controllers/ActionMethodController.php
+++ b/src/app/action/controllers/ActionMethodController.php
@@ -112,7 +112,6 @@ class ActionMethodController
 
             if (!empty($externalId['localeoId'])) {
                 if (!empty($config['inObject'])) {
-
                     foreach ($config['objects'] as $object) {
                         $select = [];
                         $tmpBodyData = [];
@@ -289,7 +288,7 @@ class ActionMethodController
             $sendedInfo = MaarchParapheurController::sendDatas([
                 'config'           => $config,
                 'resIdMaster'      => $args['resId'],
-                'processingUser'   => $processingUserInfo['login'],
+                'processingUser'   => $args['data']['processingUser'],
                 'objectSent'       => 'mail',
                 'userId'           => $GLOBALS['userId']
             ]);
diff --git a/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php b/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php
index 610edd69c03..dd47e5f2d6e 100755
--- a/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php
+++ b/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php
@@ -293,7 +293,7 @@ class MaarchParapheurController
                 $metadata[_RECIPIENTS] = $contact;
             }
 
-            $workflow = [['processingUser' => $processingUser, 'mode' => 'note']];
+            $workflow = [['userId' => $processingUser, 'mode' => 'note']];
             $bodyData = [
                 'title'            => $mainResource[0]['subject'],
                 'reference'        => $mainResource[0]['alt_identifier'],
@@ -322,6 +322,16 @@ class MaarchParapheurController
                 'externalId'        => $value['userId'],
                 'externalName'      => 'maarchParapheur'
             ]);
+            if (empty($userInfos)) {
+                $curlResponse = CurlModel::execSimple([
+                    'url'           => rtrim($aArgs['config']['data']['url'], '/') . '/rest/users/'.$value['userId'],
+                    'basicAuth'     => ['user' => $aArgs['config']['data']['userId'], 'password' => $aArgs['config']['data']['password']],
+                    'headers'       => ['content-type:application/json'],
+                    'method'        => 'GET'
+                ]);
+                $userInfos['firstname'] = $curlResponse['response']['user']['firstname'];
+                $userInfos['lastname'] = $curlResponse['response']['user']['lastname'];
+            }
             if ($value['mode'] == 'note') {
                 $mode = _NOTE_USER;
             } elseif ($value['mode'] == 'visa') {
-- 
GitLab