From 76df151737b7964ce5169fdf9e27a0ad801757fe Mon Sep 17 00:00:00 2001 From: JiaJia Ji Date: Tue, 16 May 2023 17:49:32 +0200 Subject: [PATCH] [Bug]: Fix Inheritable Segment query (#460) * refactor query * Apply php-cs-fixer changes * fix changes were based on another vers * Update SegmentAssignmentController.php * task: also return empty when $`id` is not set --------- Co-authored-by: kingjia90 --- src/Controller/Admin/SegmentAssignmentController.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Controller/Admin/SegmentAssignmentController.php b/src/Controller/Admin/SegmentAssignmentController.php index eae14a2d..68f92f00 100644 --- a/src/Controller/Admin/SegmentAssignmentController.php +++ b/src/Controller/Admin/SegmentAssignmentController.php @@ -50,12 +50,17 @@ public static function getSubscribedServices() */ public function inheritableSegments(Request $request, SegmentManagerInterface $segmentManager) { - $id = $request->get('id') ?? ''; - $type = $request->get('type') ?? ''; + $id = $request->get('id'); + $type = $request->get('type'); + if (!$type || !$id) { + return $this->adminJson(['data' => []]); + } $db = \Pimcore\Db::get(); - $parentIdStatement = sprintf('SELECT `%s` FROM `%s` WHERE `%s` = :value', $type === 'object' ? 'o_parentId' : 'parentId', $type.'s', $type === 'object' ? 'o_id' : 'id'); + $parentIdStatement = sprintf('SELECT :parentIdField FROM %s WHERE :idField = :value', $db->quoteIdentifier($type . 's')); $parentId = $db->fetchOne($parentIdStatement, [ + 'parentIdField' => $type === 'object' ? 'o_parentId' : 'parentId', + 'idField' => $type === 'object' ? 'o_id' : 'id', 'value' => $id ]);