From dde90aba2a65c2c662d077b7e89073692cc5f724 Mon Sep 17 00:00:00 2001 From: Stanislas Kita Date: Tue, 2 Sep 2025 14:07:23 +0200 Subject: [PATCH 1/4] Fix(Search): Fix undefined array key during database inventory task --- CHANGELOG.md | 4 ++++ inc/computergroupdynamic.class.php | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c212ba..2af4cf4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [UNRELEASE] +### Fixed + +- Fix `Undefined array key "glpiname"` during database inventory task. + ## [1.0.3] - 2025-07-10 ### Fixed diff --git a/inc/computergroupdynamic.class.php b/inc/computergroupdynamic.class.php index 39c7e89..2c06233 100644 --- a/inc/computergroupdynamic.class.php +++ b/inc/computergroupdynamic.class.php @@ -160,10 +160,16 @@ private function countDynamicItems() { $search_params = Search::manageParams('Computer', unserialize($this->fields['search'])); $data = Search::prepareDatasForSearch('Computer', $search_params); + + $bkp_glpi_name = $_SESSION['glpiname']; + $_SESSION['glpiname'] = 'databaseinventory_plugin'; + Search::constructSQL($data); Search::constructData($data); $count = $data['data']['totalcount']; + $_SESSION['glpiname'] = $bkp_glpi_name; + return $count; } From f11d3daa589e422b6fdbc6717db76c03ea7d3a5d Mon Sep 17 00:00:00 2001 From: Stanislas Kita Date: Wed, 3 Sep 2025 09:02:56 +0200 Subject: [PATCH 2/4] fix --- inc/computergroupdynamic.class.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/inc/computergroupdynamic.class.php b/inc/computergroupdynamic.class.php index 2c06233..5b13b88 100644 --- a/inc/computergroupdynamic.class.php +++ b/inc/computergroupdynamic.class.php @@ -161,15 +161,10 @@ private function countDynamicItems() $search_params = Search::manageParams('Computer', unserialize($this->fields['search'])); $data = Search::prepareDatasForSearch('Computer', $search_params); - $bkp_glpi_name = $_SESSION['glpiname']; - $_SESSION['glpiname'] = 'databaseinventory_plugin'; - Search::constructSQL($data); Search::constructData($data); $count = $data['data']['totalcount']; - $_SESSION['glpiname'] = $bkp_glpi_name; - return $count; } @@ -184,12 +179,17 @@ public function isDynamicSearchMatchComputer(Computer $computer) 'value' => $computer->fields['id'], ]; + $bkp_glpi_name = $_SESSION['glpiname']; + $_SESSION['glpiname'] = 'databaseinventory_plugin'; + $search_params = Search::manageParams('Computer', $search); $data = Search::prepareDatasForSearch('Computer', $search_params); Search::constructSQL($data); Search::constructData($data); $count = $data['data']['totalcount']; + $_SESSION['glpiname'] = $bkp_glpi_name; + return $count; } From 8fd07b1de6d42b70f8e79e722eeecee62344eb86 Mon Sep 17 00:00:00 2001 From: Stanislas Kita Date: Wed, 3 Sep 2025 09:04:05 +0200 Subject: [PATCH 3/4] remove useless new line --- inc/computergroupdynamic.class.php | 1 - 1 file changed, 1 deletion(-) diff --git a/inc/computergroupdynamic.class.php b/inc/computergroupdynamic.class.php index 5b13b88..be567d8 100644 --- a/inc/computergroupdynamic.class.php +++ b/inc/computergroupdynamic.class.php @@ -160,7 +160,6 @@ private function countDynamicItems() { $search_params = Search::manageParams('Computer', unserialize($this->fields['search'])); $data = Search::prepareDatasForSearch('Computer', $search_params); - Search::constructSQL($data); Search::constructData($data); $count = $data['data']['totalcount']; From 17deaf2bc7eb06838c5b186add9921c069861fb2 Mon Sep 17 00:00:00 2001 From: Stanislas Kita Date: Wed, 3 Sep 2025 10:34:42 +0200 Subject: [PATCH 4/4] start session before set glpiname --- inc/computergroupdynamic.class.php | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/inc/computergroupdynamic.class.php b/inc/computergroupdynamic.class.php index be567d8..545a6a1 100644 --- a/inc/computergroupdynamic.class.php +++ b/inc/computergroupdynamic.class.php @@ -178,17 +178,16 @@ public function isDynamicSearchMatchComputer(Computer $computer) 'value' => $computer->fields['id'], ]; - $bkp_glpi_name = $_SESSION['glpiname']; - $_SESSION['glpiname'] = 'databaseinventory_plugin'; - + if (!isset($_SESSION['glpiname'])) { + Session::start(); + $_SESSION['glpiname'] = 'databaseinventory_plugin'; + } $search_params = Search::manageParams('Computer', $search); $data = Search::prepareDatasForSearch('Computer', $search_params); Search::constructSQL($data); Search::constructData($data); $count = $data['data']['totalcount']; - $_SESSION['glpiname'] = $bkp_glpi_name; - return $count; }