From 7936e6356b6f6aa24188c2c9ca09f9eba6a3a23a Mon Sep 17 00:00:00 2001
From: Thibault Dockx <thibault.dockx@fusiondirectory.org>
Date: Mon, 2 Sep 2024 12:10:13 +0100
Subject: [PATCH] :sparkles: Feat(Integrator) - WebService call encode DN url

Encodes rawurlencode passed DN correctly.
---
 src/FusionDirectory/Rest/WebServiceCall.php | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/FusionDirectory/Rest/WebServiceCall.php b/src/FusionDirectory/Rest/WebServiceCall.php
index fcc48e9..349c579 100644
--- a/src/FusionDirectory/Rest/WebServiceCall.php
+++ b/src/FusionDirectory/Rest/WebServiceCall.php
@@ -4,7 +4,7 @@ namespace FusionDirectory\Rest;
 class WebServiceCall
 {
   private $URL, $method, $token; //String
-  private $data, $authData; //Array
+  private                $data, $authData; //Array
   /**
    * @var false|resource
    */
@@ -141,7 +141,8 @@ class WebServiceCall
       ]
     ];
 
-    $this->setCurlSettings($_ENV['FUSION_DIRECTORY_API_URL'] . '/objects/tasks/' . $dn, $data, 'PATCH');
+    // the DN can contain space which must be URL encoded correctly.
+    $this->setCurlSettings($_ENV['FUSION_DIRECTORY_API_URL'] . '/objects/tasks/' . rawurlencode($dn), $data, 'PATCH');
     curl_exec($this->ch);
 
     $this->handleCurlError($this->ch);
@@ -168,7 +169,8 @@ class WebServiceCall
       'refreshUser' => NULL
     ];
 
-    $this->setCurlSettings($_ENV['FUSION_DIRECTORY_API_URL'] . '/objects/user/' . $dn, $data, 'PATCH');
+    // A DN can contain space and therefore must be encoded properly before processing.
+    $this->setCurlSettings($_ENV['FUSION_DIRECTORY_API_URL'] . '/objects/user/' . rawurlencode($dn), $data, 'PATCH');
     curl_exec($this->ch);
 
     $this->handleCurlError($this->ch);
-- 
GitLab