From cf892d295f78710f4141b717ff054a23ec7cf890 Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Wed, 13 Nov 2019 17:42:34 +0100
Subject: [PATCH] FIX #12332 TIME 3:00 merge field in indexing form

---
 src/app/contentManagement/controllers/JnlpController.php  | 7 ++++---
 src/app/contentManagement/controllers/MergeController.php | 7 ++++---
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/app/contentManagement/controllers/JnlpController.php b/src/app/contentManagement/controllers/JnlpController.php
index a318ac171de..e441819d4b9 100755
--- a/src/app/contentManagement/controllers/JnlpController.php
+++ b/src/app/contentManagement/controllers/JnlpController.php
@@ -251,18 +251,19 @@ class JnlpController
                     }
                 }
                 $mergedDocument = MergeController::mergeDocument([
-                    'content'   => file_get_contents($pathToCopy),
-                    'data'      => $dataToMerge
+                    'path' => $pathToCopy,
+                    'data' => $dataToMerge
                 ]);
 
                 file_put_contents($tmpPath . $newFileOnTmp, base64_decode($mergedDocument['encodedDocument']));
+                $pathToCopy = $tmpPath . $newFileOnTmp;
             } else {
                 $xmlResponse = JnlpController::generateResponse(['type' => 'ERROR', 'data' => ['ERROR' => 'Wrong objectType']]);
                 $response->write($xmlResponse);
                 return $response->withHeader('Content-Type', 'application/xml');
             }
 
-            if (!file_exists($pathToCopy) || !copy($pathToCopy, $tmpPath . $newFileOnTmp)) {
+            if ( $pathToCopy != $tmpPath . $newFileOnTmp && (!file_exists($pathToCopy) || !copy($pathToCopy, $tmpPath . $newFileOnTmp))) {
                 $xmlResponse = JnlpController::generateResponse(['type' => 'ERROR', 'data' => ['ERROR' => "Failed to copy on {$tmpPath} : {$pathToCopy}"]]);
                 $response->write($xmlResponse);
                 return $response->withHeader('Content-Type', 'application/xml');
diff --git a/src/app/contentManagement/controllers/MergeController.php b/src/app/contentManagement/controllers/MergeController.php
index ba4917ec64d..103e3e133e0 100644
--- a/src/app/contentManagement/controllers/MergeController.php
+++ b/src/app/contentManagement/controllers/MergeController.php
@@ -87,7 +87,7 @@ class MergeController
 
         //Resource
         if (!empty($args['resId'])) {
-            $resource = ResModel::getById(['select' => ['*'], 'resId' => [$args['resId']]]);
+            $resource = ResModel::getById(['select' => ['*'], 'resId' => $args['resId']]);
         } else {
             if (!empty($args['modelId'])) {
                 $indexingModel = IndexingModelModel::getById(['id' => $args['modelId'], 'select' => ['category']]);
@@ -198,9 +198,10 @@ class MergeController
             ]);
             foreach ($copyWorkflow as $value) {
                 if ($value['item_type'] == 'user_id') {
-                    $labelledUser = UserModel::getLabelledUserById(['id' => $value['item_id']]);
+                    $userInfo      = UserModel::getByLogin(['login' => $value['item_id'], 'select' => ['id']]);
+                    $labelledUser  = UserModel::getLabelledUserById(['id' => $userInfo['id']]);
                     $primaryentity = UserModel::getPrimaryEntityByUserId(['userId' => $value['item_id']]);
-                    $label = "{$labelledUser} ({$primaryentity})";
+                    $label         = "{$labelledUser} ({$primaryentity})";
                 } else {
                     $entity = EntityModel::getByEntityId(['entityId' => $value['item_id'], 'select' => ['entity_label']]);
                     $label = $entity['entity_label'];
-- 
GitLab