From ea39b431da5e02914ce43ea381812239f008a942 Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Fri, 8 Mar 2019 17:29:57 +0100
Subject: [PATCH] FEAT #9105 M2M review

---
 modules/export_seda/RequestSeda.php                  |  8 +++++++-
 .../Controllers/SendMessageExchangeController.php    | 12 +++---------
 modules/sendmail/mail_form.php                       |  6 +++---
 modules/sendmail/messageExchangeList.php             |  6 +++++-
 .../controllers/AdapterMaarchCourrierController.php  | 10 +++++-----
 .../exportSeda/controllers/AdapterWSController.php   |  4 ++--
 .../controllers/DOMTemplateProcessorController.php   |  2 +-
 .../exportSeda/controllers/SendMessageController.php |  4 ++--
 .../exportSeda/controllers/TransferController.php    |  2 +-
 9 files changed, 29 insertions(+), 25 deletions(-)

diff --git a/modules/export_seda/RequestSeda.php b/modules/export_seda/RequestSeda.php
index bfc357be666..e64dc384d17 100755
--- a/modules/export_seda/RequestSeda.php
+++ b/modules/export_seda/RequestSeda.php
@@ -481,6 +481,12 @@ class RequestSeda
     {
         $queryParams = [];
 
+        if (!empty($_SESSION['user']['UserId'])) {
+            $userId = $_SESSION['user']['UserId'];
+        } else {
+            $userId = $GLOBALS['userId'];
+        }
+
         if (empty($messageObject->messageId)) {
             $messageObject->messageId = $this->generateUniqueId();
         }
@@ -571,7 +577,7 @@ class RequestSeda
             $queryParams[] = $status; // Status
             $queryParams[] = $messageObject->date; // Date
             $queryParams[] = $messageObject->MessageIdentifier->value; // Reference
-            $queryParams[] = $_SESSION['user']['UserId']; // Account Id
+            $queryParams[] = $userId; // Account Id
             $queryParams[] = $messageObject->TransferringAgency->Identifier->value; // Sender org identifier id
             $queryParams[] = $aArgs['SenderOrgNAme']; //SenderOrgNAme
             $queryParams[] = $messageObject->ArchivalAgency->Identifier->value; // Recipient org identifier id
diff --git a/modules/sendmail/Controllers/SendMessageExchangeController.php b/modules/sendmail/Controllers/SendMessageExchangeController.php
index 4eac1e06b59..0c6d38e0217 100755
--- a/modules/sendmail/Controllers/SendMessageExchangeController.php
+++ b/modules/sendmail/Controllers/SendMessageExchangeController.php
@@ -31,15 +31,9 @@ class SendMessageExchangeController
             return ['errors' => "wrong identifier"];
         }
 
-        if (empty($mlbCollExt['exp_contact_id']) && empty($mlbCollExt['dest_contact_id'])) {
-            return ['errors' => "no contact"];
-        }
-
-        if ($mlbCollExt['exp_contact_id'] != null) {
-            $contact_id = $mlbCollExt['exp_contact_id'];
-        } else {
-            $contact_id = $mlbCollExt['dest_contact_id'];
-        }
+        // if (empty($mlbCollExt['exp_contact_id']) && empty($mlbCollExt['dest_contact_id'])) {
+        //     return ['errors' => "no contact"];
+        // }
 
         /***************** GET MAIL INFOS *****************/
         $AllUserEntities = \Entity\models\EntityModel::getEntitiesByUserId(['user_id' => $_SESSION['user']['UserId']]);
diff --git a/modules/sendmail/mail_form.php b/modules/sendmail/mail_form.php
index 08b43ac15c5..15e69a466a8 100755
--- a/modules/sendmail/mail_form.php
+++ b/modules/sendmail/mail_form.php
@@ -1046,7 +1046,7 @@ if ($mode == 'add') {
             $content .= '<br/></td>';
             $content .= '</tr>';
             //To
-            if (count($emailArray['to']) > 0) {
+            if (!empty($emailArray['to']) && count($emailArray['to']) > 0) {
                 $_SESSION['adresses']['to'] = array();
                 $_SESSION['adresses']['to'] = $emailArray['to'];
             }
@@ -1065,7 +1065,7 @@ if ($mode == 'add') {
                 $content .= '<tr><td align="right" nowrap width="10%"></td><td width="90%">'._COMMUNICATION_TYPE.' : '.$emailArray['communicationType'].'</td></tr>';
             } else {
                 //CC
-                if (count($emailArray['cc']) > 0) {
+                if (!empty($emailArray['cc']) && count($emailArray['cc']) > 0) {
                     $_SESSION['adresses']['cc'] = array();
                     $_SESSION['adresses']['cc'] = $emailArray['cc'];
                 }
@@ -1076,7 +1076,7 @@ if ($mode == 'add') {
                 $content .= '</div></td>';
                 $content .= '</tr>';
                 //CCI
-                if (count($emailArray['cci']) > 0) {
+                if (!empty($emailArray['cci']) && count($emailArray['cci']) > 0) {
                     $_SESSION['adresses']['cci'] = array();
                     $_SESSION['adresses']['cci'] = $emailArray['cci'];
                 }
diff --git a/modules/sendmail/messageExchangeList.php b/modules/sendmail/messageExchangeList.php
index a2532a87b1e..b94a8356902 100755
--- a/modules/sendmail/messageExchangeList.php
+++ b/modules/sendmail/messageExchangeList.php
@@ -106,7 +106,11 @@ if (!empty($tab)) {
                 }
                 if ($tab[$i][$j][$value]=="account_id") {
                     $userInfo = \User\models\UserModel::getByLogin(['login' => $tab[$i][$j]["value"]]);
-                    $tab[$i][$j]["value"]       = $userInfo['firstname'] . " " . $userInfo['lastname'] . " (".$sender_org_name.")";
+                    $senderName = '';
+                    if(!empty($sender_org_name)){
+                        $senderName = ' ('.$sender_org_name.')';
+                    }
+                    $tab[$i][$j]["value"]       = $userInfo['firstname'] . " " . $userInfo['lastname'] . $senderName;
                     $tab[$i][$j]["label"]       = _SENDER;
                     $tab[$i][$j]["size"]        = "20";
                     $tab[$i][$j]["label_align"] = "left";
diff --git a/src/app/external/exportSeda/controllers/AdapterMaarchCourrierController.php b/src/app/external/exportSeda/controllers/AdapterMaarchCourrierController.php
index 02c3d6c323a..928be8b7c56 100755
--- a/src/app/external/exportSeda/controllers/AdapterMaarchCourrierController.php
+++ b/src/app/external/exportSeda/controllers/AdapterMaarchCourrierController.php
@@ -27,21 +27,21 @@ class AdapterMaarchCourrierController
 
         $message = MessageExchangeModel::getMessageByReference(['reference' => $messageId]);
 
-        $messageObject = json_decode($message[0]->data);
+        $messageObject = json_decode($message[0]['data']);
 
-        $docserver     = DocserverModel::getByDocserverId(['docserverId' => $message[0]->docserver_id]);
+        $docserver     = DocserverModel::getByDocserverId(['docserverId' => $message[0]['docserver_id']]);
         $docserverType = DocserverTypeModel::getById(
             ['id' => $docserver['docserver_type_id']]
         );
 
-        $pathDirectory = str_replace('#', DIRECTORY_SEPARATOR, $message[0]->path);
-        $filePath      = $docserver['path_template'] . $pathDirectory . $message[0]->filename;
+        $pathDirectory = str_replace('#', DIRECTORY_SEPARATOR, $message[0]['path']);
+        $filePath      = $docserver['path_template'] . $pathDirectory . $message[0]['filename'];
         $fingerprint   = StoreController::getFingerPrint([
             'filePath' => $filePath,
             'mode'     => $docserverType['fingerprint_mode'],
         ]);
 
-        if ($fingerprint != $message[0]->fingerprint) {
+        if ($fingerprint != $message[0]['fingerprint']) {
             echo _PB_WITH_FINGERPRINT_OF_DOCUMENT;
             exit;
         }
diff --git a/src/app/external/exportSeda/controllers/AdapterWSController.php b/src/app/external/exportSeda/controllers/AdapterWSController.php
index be58633dd20..938f72c4a32 100755
--- a/src/app/external/exportSeda/controllers/AdapterWSController.php
+++ b/src/app/external/exportSeda/controllers/AdapterWSController.php
@@ -24,10 +24,10 @@ class AdapterWSController
         $res     = TransferController::transfer('maarchcourrier', $message[0]['reference'], $type);
 
         if ($res['status'] == 1) {
-            MessageExchangeModel::updateStatusMessage(['reference' => $message->reference, 'status' => 'E']);
+            MessageExchangeModel::updateStatusMessage(['reference' => $message[0]['reference'], 'status' => 'E']);
             return $res;
         }
 
-        MessageExchangeModel::updateStatusMessage(['reference' => $message->reference, 'status' => 'S']);
+        MessageExchangeModel::updateStatusMessage(['reference' => $message[0]['reference'], 'status' => 'S']);
     }
 }
diff --git a/src/app/external/exportSeda/controllers/DOMTemplateProcessorController.php b/src/app/external/exportSeda/controllers/DOMTemplateProcessorController.php
index 0c57cc45c52..29181160906 100755
--- a/src/app/external/exportSeda/controllers/DOMTemplateProcessorController.php
+++ b/src/app/external/exportSeda/controllers/DOMTemplateProcessorController.php
@@ -96,7 +96,7 @@ class DOMTemplateProcessorController extends \DOMXPath
         if ($pis = $this->query("descendant-or-self::processing-instruction('xinclude')", $node)) {
             foreach ($pis as $pi) {
                 $includeFragment = $this->document->createDocumentFragment();
-                $source = file_get_contents(__DIR__ . trim($pi->data));
+                $source = file_get_contents('modules/export_seda' . trim($pi->data));
                 if (!$source) {
                     throw new \Exception("Error including Xml fragment: fragment '$pi->data' could not be parsed");
                 }
diff --git a/src/app/external/exportSeda/controllers/SendMessageController.php b/src/app/external/exportSeda/controllers/SendMessageController.php
index 92dc2802868..bc87ca88a9d 100755
--- a/src/app/external/exportSeda/controllers/SendMessageController.php
+++ b/src/app/external/exportSeda/controllers/SendMessageController.php
@@ -41,8 +41,8 @@ class SendMessageController
         $messageObject = $aArgs['messageObject'];
         $type          = $aArgs['type'];
 
-        $DOMTemplate = new DOMDocument();
-        $DOMTemplate->load('../../../../../modules/exportSeda/resources/'.$type.'.xml');
+        $DOMTemplate = new \DOMDocument();
+        $DOMTemplate->load('modules/export_seda/resources/'.$type.'.xml');
         $DOMTemplateProcessor = new DOMTemplateProcessorController($DOMTemplate);
         $DOMTemplateProcessor->setSource($type, $messageObject);
         $DOMTemplateProcessor->merge();
diff --git a/src/app/external/exportSeda/controllers/TransferController.php b/src/app/external/exportSeda/controllers/TransferController.php
index 22fca3ab166..8c28bf9ea49 100755
--- a/src/app/external/exportSeda/controllers/TransferController.php
+++ b/src/app/external/exportSeda/controllers/TransferController.php
@@ -20,7 +20,7 @@ class TransferController
 {
     public static function transfer($target, $reference, $type = null)
     {
-        $xml            = CoreConfigModel::getXmlLoaded('modules/export_seda/xml/config.xml');
+        $xml            = CoreConfigModel::getXmlLoaded(['path' => 'modules/export_seda/xml/config.xml']);
         $adapter        = '';
         $res['status']  = 0;
         $res['content'] = '';
-- 
GitLab