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