From 1e19717c89a7055adc440d83dfdc4a18d6e13197 Mon Sep 17 00:00:00 2001
From: "florian.azizian" <florian.azizian@maarch.org>
Date: Mon, 8 Apr 2019 23:39:12 +0100
Subject: [PATCH] fix tu send to maarchparapheur + fix url with slash

---
 .../controllers/MaarchParapheurController.php    | 16 ++++++++--------
 src/app/user/controllers/UserController.php      |  7 +++++--
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php b/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php
index 4bc70ca6d24..152715fef5c 100755
--- a/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php
+++ b/src/app/external/externalSignatoryBook/controllers/MaarchParapheurController.php
@@ -37,7 +37,7 @@ class MaarchParapheurController
     public static function getUsers(array $aArgs)
     {
         $response = CurlModel::exec([
-            'url'      => $aArgs['config']['data']['url'] . '/rest/users',
+            'url'      => rtrim($aArgs['config']['data']['url'], '/') . '/rest/users',
             'user'     => $aArgs['config']['data']['userId'],
             'password' => $aArgs['config']['data']['password'],
             'method'   => 'GET'
@@ -126,8 +126,8 @@ class MaarchParapheurController
                     if ($mainResource[0]['category_id'] != 'outgoing') {
                         $attachmentsData = [[
                             'encodedDocument' => $encodedMainZipFile,
-                            'title'            => $mainResource[0]['subject'],
-                            'reference'          => $mainResource[0]['alt_identifier']
+                            'title'           => $mainResource[0]['subject'],
+                            'reference'       => $mainResource[0]['alt_identifier']
                         ]];
                     } else {
                         $attachmentsData = [];
@@ -158,7 +158,7 @@ class MaarchParapheurController
                     ];
         
                     $response = CurlModel::exec([
-                        'url'      => $aArgs['config']['data']['url'] . '/rest/documents',
+                        'url'      => rtrim($aArgs['config']['data']['url'], '/') . '/rest/documents',
                         'user'     => $aArgs['config']['data']['userId'],
                         'password' => $aArgs['config']['data']['password'],
                         'method'   => 'POST',
@@ -193,7 +193,7 @@ class MaarchParapheurController
             ];
 
             $response = CurlModel::exec([
-                'url'      => $aArgs['config']['data']['url'] . '/rest/documents',
+                'url'      => rtrim($aArgs['config']['data']['url'], '/') . '/rest/documents',
                 'user'     => $aArgs['config']['data']['userId'],
                 'password' => $aArgs['config']['data']['password'],
                 'method'   => 'POST',
@@ -230,7 +230,7 @@ class MaarchParapheurController
     public static function getUserById(array $aArgs)
     {
         $response = CurlModel::exec([
-            'url'      => $aArgs['config']['data']['url'] . '/rest/users/'.$aArgs['id'],
+            'url'      => rtrim($aArgs['config']['data']['url'], '/') . '/rest/users/'.$aArgs['id'],
             'user'     => $aArgs['config']['data']['userId'],
             'password' => $aArgs['config']['data']['password'],
             'method'   => 'GET'
@@ -274,7 +274,7 @@ class MaarchParapheurController
     public static function getDocumentStatus(array $aArgs)
     {
         $response = CurlModel::exec([
-            'url'      => $aArgs['config']['data']['url'] . '/rest/documents/'.$aArgs['documentId'].'/status',
+            'url'      => rtrim($aArgs['config']['data']['url'], '/') . '/rest/documents/'.$aArgs['documentId'].'/status',
             'user'     => $aArgs['config']['data']['userId'],
             'password' => $aArgs['config']['data']['password'],
             'method'   => 'GET'
@@ -286,7 +286,7 @@ class MaarchParapheurController
     public static function getProcessedDocument(array $aArgs)
     {
         $response = CurlModel::exec([
-            'url'      => $aArgs['config']['data']['url'] . '/rest/documents/'.$aArgs['documentId'].'/processedDocument',
+            'url'      => rtrim($aArgs['config']['data']['url'], '/') . '/rest/documents/'.$aArgs['documentId'].'/processedDocument',
             'user'     => $aArgs['config']['data']['userId'],
             'password' => $aArgs['config']['data']['password'],
             'method'   => 'GET'
diff --git a/src/app/user/controllers/UserController.php b/src/app/user/controllers/UserController.php
index 6d02404e0f2..8828751137e 100755
--- a/src/app/user/controllers/UserController.php
+++ b/src/app/user/controllers/UserController.php
@@ -121,7 +121,7 @@ class UserController
             $user['canModifyPassword'] = true;
         }
         $loadedXml = CoreConfigModel::getXmlLoaded(['path' => 'modules/visa/xml/remoteSignatoryBooks.xml']);
-        if ((string)$loadedXml->signatoryBookEnabled == 'maarchParapheur' && $user['loginmode'] != 'restMode' && empty($user['external_id']['maarchParapheur'])) {
+        if ((string)$loadedXml->signatoryBookEnabled == 'maarchParapheur' && $user['loginmode'] != 'restMode' && empty($user['external_id']->maarchParapheur)) {
             $user['canCreateMaarchParapheurUser'] = true;
         }
 
@@ -1360,7 +1360,7 @@ class UserController
             }
 
             $responseExec = CurlModel::exec([
-                'url'      => $url . '/rest/users',
+                'url'      => rtrim($url, '/') . '/rest/users',
                 'user'     => $userId,
                 'password' => $password,
                 'method'   => 'POST',
@@ -1370,6 +1370,9 @@ class UserController
             if (!empty($responseExec['errors'])) {
                 return $response->withStatus(400)->withJson(['errors' => $responseExec['errors']]);
             }
+            if (!empty($responseExec['message'])) {
+                return $response->withStatus(400)->withJson(['errors' => $responseExec['message']]);
+            }
         } else {
             return $response->withStatus(403)->withJson(['errors' => 'maarchParapheur is not enabled']);
         }
-- 
GitLab