From e7e9728c4a12130fccc719883d4286a49b9887ee Mon Sep 17 00:00:00 2001
From: Guillaume Heurtier <guillaume.heurtier@maarch.org>
Date: Fri, 21 Feb 2020 15:09:33 +0100
Subject: [PATCH] FEAT #13243 TIME 0:25 fix perimeter if resource is in shared
 folder but user has no entities

---
 src/app/folder/controllers/FolderController.php     | 2 +-
 src/app/resource/controllers/IndexingController.php | 2 +-
 src/app/resource/controllers/ResController.php      | 3 +++
 3 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/app/folder/controllers/FolderController.php b/src/app/folder/controllers/FolderController.php
index f8808f57745..03c8377c80c 100755
--- a/src/app/folder/controllers/FolderController.php
+++ b/src/app/folder/controllers/FolderController.php
@@ -862,7 +862,7 @@ class FolderController
 
         $userEntities = array_column($userEntities, 'id');
         if (empty($userEntities)) {
-            $userEntities = 0;
+            $userEntities = [0];
         }
 
         if ($args['edition']) {
diff --git a/src/app/resource/controllers/IndexingController.php b/src/app/resource/controllers/IndexingController.php
index b2a1fb4f2da..6f54f73ac26 100755
--- a/src/app/resource/controllers/IndexingController.php
+++ b/src/app/resource/controllers/IndexingController.php
@@ -85,7 +85,7 @@ class IndexingController
         if (!array_key_exists($action['component'], ActionMethodController::COMPONENTS_ACTIONS)) {
             return $response->withStatus(400)->withJson(['errors' => 'Action method does not exist']);
         }
-        $parameters = json_decode($action['parameters']);
+        $parameters = json_decode($action['parameters'], true);
         $actionRequiredFields = $parameters['requiredFields'] ?? [];
 
         $resource = ResModel::getById(['resId' => $body['resource'], 'select' => ['status']]);
diff --git a/src/app/resource/controllers/ResController.php b/src/app/resource/controllers/ResController.php
index 683c1c45988..a8bde115868 100755
--- a/src/app/resource/controllers/ResController.php
+++ b/src/app/resource/controllers/ResController.php
@@ -918,6 +918,9 @@ class ResController extends ResourceControlController
 
         $entities = UserModel::getEntitiesByLogin(['login' => $user['user_id'], 'select' => ['id']]);
         $entities = array_column($entities, 'id');
+        if (empty($entities)) {
+            $entities = [0];
+        }
 
         $foldersClause = 'res_id in (select res_id from folders LEFT JOIN entities_folders ON folders.id = entities_folders.folder_id LEFT JOIN resources_folders ON folders.id = resources_folders.folder_id ';
         $foldersClause .= "WHERE entities_folders.entity_id in (?) OR folders.user_id = ? OR keyword = 'ALL_ENTITIES')";
-- 
GitLab