diff --git a/www/api/class/centreon_clapi.class.php b/www/api/class/centreon_clapi.class.php
index 9b3563c31ce..7eb3b83ff1f 100644
--- a/www/api/class/centreon_clapi.class.php
+++ b/www/api/class/centreon_clapi.class.php
@@ -231,7 +231,7 @@ public function authorize($action, $user, $isInternal = false)
{
if (
parent::authorize($action, $user, $isInternal)
- || ($user && $user->hasAccessRestApiConfiguration())
+ || ($user && $user->is_admin())
) {
return true;
}
diff --git a/www/class/centreonConnector.class.php b/www/class/centreonConnector.class.php
index fc2756ed98b..69963cf3922 100644
--- a/www/class/centreonConnector.class.php
+++ b/www/class/centreonConnector.class.php
@@ -35,40 +35,40 @@
/*
* Class that contains various methods for managing connectors
- *
+ *
* Usage example:
- *
+ *
* create(array(
* // 'name' => 'jackyse',
* // 'description' => 'some jacky',
* // 'command_line' => 'ls -la',
* // 'enabled' => true
* // ), true);
- *
+ *
* //$connector->update(10, array(
* // 'name' => 'soapy',
* // 'description' => 'Lorem ipsum',
* // 'enabled' => true,
* // 'command_line' => 'ls -laph --color'
* //));
- *
+ *
* //$connector->getList(false, 20, false);
- *
+ *
* //$connector->delete(10);
- *
+ *
* //$connector->read(7);
- *
+ *
* //$connector->copy(1, 5, true);
- *
+ *
* //$connector->count(false);
- *
+ *
* //$connector->isNameAvailable('norExists');
*/
@@ -165,11 +165,13 @@ public function create(array $connector, $returnId = false)
throw new RuntimeException('Field id for connector not selected in query or connector not inserted');
} else {
if (isset($connector["command_id"])) {
+ $statement = $this->dbConnection->prepare("UPDATE `command` " .
+ "SET connector_id = :conId WHERE `command_id` = :value");
foreach ($connector["command_id"] as $key => $value) {
try {
- $query = "UPDATE `command` SET connector_id = '" . $lastId['id'] . "' " .
- "WHERE `command_id` = '" . $value . "'";
- $this->dbConnection->query($query);
+ $statement->bindValue(':conId', (int) $lastId['id'], \PDO::PARAM_INT);
+ $statement->bindValue(':value', (int) $value, \PDO::PARAM_INT);
+ $statement->execute();
} catch (\PDOException $e) {
throw new RuntimeException('Cannot update connector');
}
diff --git a/www/class/centreonWidget/Params/Connector/Poller.class.php b/www/class/centreonWidget/Params/Connector/Poller.class.php
index fa21c43c247..bb3b2aba393 100644
--- a/www/class/centreonWidget/Params/Connector/Poller.class.php
+++ b/www/class/centreonWidget/Params/Connector/Poller.class.php
@@ -48,6 +48,7 @@ public function getListValues($paramId)
static $tab;
if (! isset($tab)) {
+ $tab = [null => null];
$userACL = new CentreonACL($this->userId);
$isContactAdmin = $userACL->admin;
$request = 'SELECT SQL_CALC_FOUND_ROWS id, name FROM nagios_server ns';
diff --git a/www/include/configuration/configObject/contactgroup/DB-Func.php b/www/include/configuration/configObject/contactgroup/DB-Func.php
index e992c843004..d83370741fe 100644
--- a/www/include/configuration/configObject/contactgroup/DB-Func.php
+++ b/www/include/configuration/configObject/contactgroup/DB-Func.php
@@ -144,20 +144,24 @@ function multipleContactGroupInDB($contactGroups = array(), $nbrDup = array())
"WHERE `cg_cg_id` = " . (int)$key;
$dbResult = $pearDB->query($query);
$fields["cg_aclRelation"] = "";
+ $aclContactStatement = $pearDB->prepare("INSERT INTO `acl_group_contactgroups_relations` " .
+ "VALUES (:maxId, :cgAcl)");
while ($cgAcl = $dbResult->fetch()) {
- $query = "INSERT INTO `acl_group_contactgroups_relations` VALUES ('" .
- $maxId["MAX(cg_id)"] . "', '" . $cgAcl['acl_group_id'] . "')";
- $pearDB->query($query);
+ $aclContactStatement->bindValue(":maxId", (int) $maxId["MAX(cg_id)"], PDO::PARAM_INT);
+ $aclContactStatement->bindValue(":cgAcl", (int) $cgAcl['acl_group_id'], PDO::PARAM_INT);
+ $aclContactStatement->execute();
$fields["cg_aclRelation"] .= $cgAcl["acl_group_id"] . ",";
}
$query = "SELECT DISTINCT `cgcr`.`contact_contact_id` FROM `contactgroup_contact_relation` `cgcr`" .
" WHERE `cgcr`.`contactgroup_cg_id` = '" . (int)$key . "'";
$dbResult = $pearDB->query($query);
$fields["cg_contacts"] = "";
+ $contactStatement = $pearDB->prepare("INSERT INTO `contactgroup_contact_relation` " .
+ "VALUES (:cct, :maxId)");
while ($cct = $dbResult->fetch()) {
- $query = "INSERT INTO `contactgroup_contact_relation` " .
- "VALUES ('" . $cct["contact_contact_id"] . "', '" . $maxId["MAX(cg_id)"] . "')";
- $pearDB->query($query);
+ $contactStatement->bindValue(":cct", (int) $cct["contact_contact_id"], \PDO::PARAM_INT);
+ $contactStatement->bindValue(":maxId", (int) $maxId["MAX(cg_id)"], \PDO::PARAM_INT);
+ $contactStatement->execute();
$fields["cg_contacts"] .= $cct["contact_contact_id"] . ",";
}
$fields["cg_contacts"] = trim($fields["cg_contacts"], ",");
diff --git a/www/include/configuration/configObject/host_categories/DB-Func.php b/www/include/configuration/configObject/host_categories/DB-Func.php
index 63473a17c6c..a544e74d90c 100644
--- a/www/include/configuration/configObject/host_categories/DB-Func.php
+++ b/www/include/configuration/configObject/host_categories/DB-Func.php
@@ -249,10 +249,11 @@ function multipleHostCategoriesInDB($hostCategories = [], $nbrDup = [])
$statement3->bindValue(':hc_id', $hcId, \PDO::PARAM_INT);
$statement3->execute();
$fields["hc_hosts"] = "";
+ $hrstatement = $pearDB->prepare("INSERT INTO hostcategories_relation VALUES (:maxId, :hostId)");
while ($host = $statement3->fetch()) {
- $query = "INSERT INTO hostcategories_relation VALUES ('" . $maxId["MAX(hc_id)"] .
- "', '" . $host["host_host_id"] . "')";
- $pearDB->query($query);
+ $hrstatement->bindValue(':maxId', (int) $maxId["MAX(hc_id)"], \PDO::PARAM_INT);
+ $hrstatement->bindValue(':hostId', (int) $host["host_host_id"], \PDO::PARAM_INT);
+ $hrstatement->execute();
$fields["hc_hosts"] .= $host["host_host_id"] . ",";
}
$fields["hc_hosts"] = trim($fields["hc_hosts"], ",");
diff --git a/www/include/configuration/configObject/service/xml/argumentsXml.php b/www/include/configuration/configObject/service/xml/argumentsXml.php
index 335283c5863..ec0edbd0316 100644
--- a/www/include/configuration/configObject/service/xml/argumentsXml.php
+++ b/www/include/configuration/configObject/service/xml/argumentsXml.php
@@ -131,12 +131,13 @@
$exampleTab = array();
}
- $query3 = "SELECT command_command_id_arg " .
+ $cmdStatement = $db->prepare("SELECT command_command_id_arg " .
"FROM service " .
- "WHERE service_id = '" . $svcId . "' LIMIT 1";
- $res3 = $db->query($query3);
- if ($res3->rowCount()) {
- $row3 = $res3->fetchRow();
+ "WHERE service_id = :svcId LIMIT 1");
+ $cmdStatement->bindValue(':svcId', (int) $svcId, PDO::PARAM_INT);
+ $cmdStatement->execute();
+ if ($cmdStatement->rowCount()) {
+ $row3 = $cmdStatement->fetchRow();
$valueTab = preg_split('/(? $value) {
@@ -149,14 +150,15 @@
}
}
- $query = "SELECT macro_name, macro_description " .
+ $macroStatement = $db->prepare("SELECT macro_name, macro_description " .
"FROM command_arg_description " .
- "WHERE cmd_id = '" . $cmdId . "' ORDER BY macro_name";
- $res = $db->query($query);
- while ($row = $res->fetchRow()) {
+ "WHERE cmd_id = :cmdId ORDER BY macro_name");
+ $macroStatement->bindValue(':cmdId', (int) $cmdId, \PDO::PARAM_INT);
+ $macroStatement->execute();
+ while ($row = $macroStatement->fetchRow()) {
$argTab[$row['macro_name']] = $row['macro_description'];
}
- $res->closeCursor();
+ $macroStatement->closeCursor();
/*
* Write XML
diff --git a/www/include/configuration/configObject/service_categories/listServiceCategories.php b/www/include/configuration/configObject/service_categories/listServiceCategories.php
index 6db22ec44ea..5826517d427 100644
--- a/www/include/configuration/configObject/service_categories/listServiceCategories.php
+++ b/www/include/configuration/configObject/service_categories/listServiceCategories.php
@@ -119,12 +119,12 @@
$elemArr = array();
$centreonToken = createCSRFToken();
+$statement = $pearDB->prepare("SELECT COUNT(*) FROM `service_categories_relation` WHERE `sc_id` = :sc_id");
for ($i = 0; $sc = $dbResult->fetch(); $i++) {
$moptions = "";
- $dbResult2 = $pearDB->query(
- "SELECT COUNT(*) FROM `service_categories_relation` WHERE `sc_id` = '" . $sc['sc_id'] . "'"
- );
- $nb_svc = $dbResult2->fetch();
+ $statement->bindValue(':sc_id', (int) $sc['sc_id'], \PDO::PARAM_INT);
+ $statement->execute();
+ $nb_svc = $statement->fetch();
$selectedElements = $form->addElement('checkbox', "select[" . $sc['sc_id'] . "]");
diff --git a/www/include/configuration/configObject/service_template_model/listServiceTemplateModel.ihtml b/www/include/configuration/configObject/service_template_model/listServiceTemplateModel.ihtml
index a89a4b099fb..59bb447acba 100644
--- a/www/include/configuration/configObject/service_template_model/listServiceTemplateModel.ihtml
+++ b/www/include/configuration/configObject/service_template_model/listServiceTemplateModel.ihtml
@@ -76,7 +76,7 @@
{$elemArr[elem].RowMenu_alias} |
{$elemArr[elem].RowMenu_retry} |
- {$elemArr[elem].RowMenu_parent} |
+ {$elemArr[elem].RowMenu_parent} |
|
{if $mode_access == 'w' }{$elemArr[elem].RowMenu_options}{else} {/if} |
diff --git a/www/include/configuration/configObject/service_template_model/listServiceTemplateModel.php b/www/include/configuration/configObject/service_template_model/listServiceTemplateModel.php
index 8467ce4dc8d..b611b5d96c5 100644
--- a/www/include/configuration/configObject/service_template_model/listServiceTemplateModel.php
+++ b/www/include/configuration/configObject/service_template_model/listServiceTemplateModel.php
@@ -172,7 +172,8 @@
foreach ($tplArr as $key => $value) {
$value = str_replace('#S#', "/", $value);
$value = str_replace('#BS#', "\\", $value);
- $tplStr .= " -> " . $value . "";
+ $tplStr .= " -> "
+ . htmlentities($value) . "";
}
}
@@ -228,7 +229,7 @@
"RowMenu_select" => $selectedElements->toHtml(),
"RowMenu_desc" => htmlentities($service["service_description"]),
"RowMenu_alias" => htmlentities($service["service_alias"]),
- "RowMenu_parent" => htmlentities($tplStr),
+ "RowMenu_parent" => $tplStr,
"RowMenu_icon" => $svc_icon,
"RowMenu_retry" => htmlentities(
"$normal_check_interval $normal_units / $retry_check_interval $retry_units"
diff --git a/www/include/configuration/configObject/servicegroup_dependency/DB-Func.php b/www/include/configuration/configObject/servicegroup_dependency/DB-Func.php
index 8d25f9e6f26..aaf61e1edb0 100644
--- a/www/include/configuration/configObject/servicegroup_dependency/DB-Func.php
+++ b/www/include/configuration/configObject/servicegroup_dependency/DB-Func.php
@@ -128,10 +128,13 @@ function multipleServiceGroupDependencyInDB($dependencies = array(), $nbrDup = a
"WHERE dependency_dep_id = '" . $key . "'";
$dbResult = $pearDB->query($query);
$fields["dep_sgParents"] = "";
+ $query = "INSERT INTO dependency_servicegroupParent_relation " .
+ "VALUES (:dep_id, :servicegroup_sg_id)";
+ $statement = $pearDB->prepare($query);
while ($sg = $dbResult->fetch()) {
- $query = "INSERT INTO dependency_servicegroupParent_relation " .
- "VALUES ('" . $maxId["MAX(dep_id)"] . "', '" . $sg["servicegroup_sg_id"] . "')";
- $pearDB->query($query);
+ $statement->bindValue(':dep_id', (int) $maxId["MAX(dep_id)"], \PDO::PARAM_INT);
+ $statement->bindValue(':servicegroup_sg_id', (int) $sg["servicegroup_sg_id"], \PDO::PARAM_INT);
+ $statement->execute();
$fields["dep_sgParents"] .= $sg["servicegroup_sg_id"] . ",";
}
$fields["dep_sgParents"] = trim($fields["dep_sgParents"], ",");
@@ -140,10 +143,13 @@ function multipleServiceGroupDependencyInDB($dependencies = array(), $nbrDup = a
"WHERE dependency_dep_id = '" . $key . "'";
$dbResult = $pearDB->query($query);
$fields["dep_sgChilds"] = "";
+ $query = "INSERT INTO dependency_servicegroupChild_relation " .
+ "VALUES (:dep_id, :servicegroup_sg_id)";
+ $statement = $pearDB->prepare($query);
while ($sg = $dbResult->fetch()) {
- $query = "INSERT INTO dependency_servicegroupChild_relation " .
- "VALUES ('" . $maxId["MAX(dep_id)"] . "', '" . $sg["servicegroup_sg_id"] . "')";
- $pearDB->query($query);
+ $statement->bindValue(':dep_id', (int) $maxId["MAX(dep_id)"], \PDO::PARAM_INT);
+ $statement->bindValue(':servicegroup_sg_id', (int) $sg["servicegroup_sg_id"], \PDO::PARAM_INT);
+ $statement->execute();
$fields["dep_sgChilds"] .= $sg["servicegroup_sg_id"] . ",";
}
$fields["dep_sgChilds"] = trim($fields["dep_sgChilds"], ",");
diff --git a/www/include/configuration/configResources/DB-Func.php b/www/include/configuration/configResources/DB-Func.php
index 7f9e7f5fc9f..92ac3cd0bdc 100644
--- a/www/include/configuration/configResources/DB-Func.php
+++ b/www/include/configuration/configResources/DB-Func.php
@@ -294,23 +294,34 @@ function insertResource($ret = array())
if (!count($ret)) {
$ret = $form->getSubmitValues();
}
- $rq = "INSERT INTO cfg_resource ";
- $rq .= "(resource_name, resource_line, resource_comment, resource_activate) ";
- $rq .= "VALUES (";
- isset($ret["resource_name"]) && $ret["resource_name"] != null
- ? $rq .= "'" . $pearDB->escape($ret["resource_name"]) . "', "
- : $rq .= "NULL, ";
- isset($ret["resource_line"]) && $ret["resource_line"] != null
- ? $rq .= "'" . $pearDB->escape($ret["resource_line"]) . "', "
- : $rq .= "NULL, ";
- isset($ret["resource_comment"]) && $ret["resource_comment"] != null
- ? $rq .= "'" . $pearDB->escape($ret["resource_comment"]) . "', "
- : $rq .= "NULL, ";
- isset($ret["resource_activate"]["resource_activate"]) && $ret["resource_activate"]["resource_activate"] != null
- ? $rq .= "'" . $ret["resource_activate"]["resource_activate"] . "'"
- : $rq .= "NULL";
- $rq .= ")";
- $pearDB->query($rq);
+ $statement = $pearDB->prepare(
+ "INSERT INTO cfg_resource
+ (resource_name, resource_line, resource_comment, resource_activate)
+ VALUES (:name, :line, :comment, :is_activated)"
+ );
+ $statement->bindValue(
+ ':name',
+ ! empty($ret["resource_name"])
+ ? $ret["resource_name"]
+ : null
+ );
+ $statement->bindValue(
+ ':line',
+ ! empty($ret["resource_line"])
+ ? $ret["resource_line"]
+ : null
+ );
+ $statement->bindValue(
+ ':comment',
+ ! empty($ret["resource_comment"])
+ ? $ret["resource_comment"]
+ : null
+ );
+ $isActivated = isset($ret["resource_activate"]["resource_activate"])
+ && (bool) (int) $ret["resource_activate"]["resource_activate"];
+ $statement->bindValue(':is_activated', (string) (int) $isActivated);
+ $statement->execute();
+
$dbResult = $pearDB->query("SELECT MAX(resource_id) FROM cfg_resource");
$resource_id = $dbResult->fetch();
diff --git a/www/include/monitoring/objectDetails/hostDetails.php b/www/include/monitoring/objectDetails/hostDetails.php
index 6be0428ada8..9b418021636 100644
--- a/www/include/monitoring/objectDetails/hostDetails.php
+++ b/www/include/monitoring/objectDetails/hostDetails.php
@@ -663,40 +663,6 @@
$tpl->assign("h_ext_icon_image_alt", getMyHostExtendedInfoField($hostDB["host_id"], "ehi_icon_image_alt"));
}
- /*
- * Dynamics tools
- */
- $tools = array();
- $DBRESULT = $pearDB->query("SELECT * FROM modules_informations");
- while ($module = $DBRESULT->fetchrow()) {
- if (
- isset($module['host_tools']) && $module['host_tools'] == 1
- && file_exists('modules/' . $module['name'] . '/host_tools.php')
- ) {
- include('modules/' . $module['name'] . '/host_tools.php');
- }
- }
- $DBRESULT->closeCursor();
-
- foreach ($tools as $key => $tab) {
- $tools[$key]['url'] = str_replace("@host_id@", $host_id, $tools[$key]['url']);
- $tools[$key]['url'] = str_replace("@host_name@", $host_name, $tools[$key]['url']);
- $tools[$key]['url'] = str_replace(
- "@current_state@",
- $host_status[$host_name]["current_state"],
- $tools[$key]['url']
- );
- $tools[$key]['url'] = str_replace(
- "@plugin_output@",
- $host_status[$host_name]["plugin_output"],
- $tools[$key]['url']
- );
- }
-
- if (count($tools) > 0) {
- $tpl->assign("tools", $tools);
- }
-
// Check if central or remote server
$DBRESULT = $pearDB->query("SELECT `value` FROM `informations` WHERE `key` = 'isRemote'");
$result = $DBRESULT->fetchRow();
diff --git a/www/include/monitoring/objectDetails/serviceDetails.php b/www/include/monitoring/objectDetails/serviceDetails.php
index c3823a86d53..67e37b3a6fc 100644
--- a/www/include/monitoring/objectDetails/serviceDetails.php
+++ b/www/include/monitoring/objectDetails/serviceDetails.php
@@ -799,35 +799,6 @@
$tpl->assign("index_data", $index_data);
$tpl->assign("options2", CentreonUtils::escapeSecure($optionsURL2));
- /*
- * Dynamics tools
- */
- $tools = array();
- $DBRESULT = $pearDB->query("SELECT * FROM modules_informations");
- while ($module = $DBRESULT->fetchrow()) {
- if (
- isset($module['svc_tools'])
- && $module['svc_tools'] == 1
- && file_exists('modules/' . $module['name'] . '/svc_tools.php')
- ) {
- include('modules/' . $module['name'] . '/svc_tools.php');
- }
- }
- $DBRESULT->closeCursor();
-
- foreach ($tools as $key => $tab) {
- $tools[$key]['url'] = str_replace("@host_id@", $host_id, $tools[$key]['url']);
- $tools[$key]['url'] = str_replace("@host_name@", $host_name, $tools[$key]['url']);
- $tools[$key]['url'] = str_replace("@svc_description@", $svc_description, $tools[$key]['url']);
- $tools[$key]['url'] = str_replace("@svc_id@", $service_id, $tools[$key]['url']);
- $tools[$key]['url'] = str_replace("@current_state@", $service_status["current_state"], $tools[$key]['url']);
- $tools[$key]['url'] = str_replace("@plugin_output@", $service_status["plugin_output"], $tools[$key]['url']);
- }
-
- if (count($tools) > 0) {
- $tpl->assign("tools", CentreonUtils::escapeSecure($tools));
- }
-
/**
* Build the service detail URI that will be used in the
* deprecated banner
diff --git a/www/include/monitoring/objectDetails/template/hostDetails.ihtml b/www/include/monitoring/objectDetails/template/hostDetails.ihtml
index e2d1239920e..b9f9f942ba4 100644
--- a/www/include/monitoring/objectDetails/template/hostDetails.ihtml
+++ b/www/include/monitoring/objectDetails/template/hostDetails.ihtml
@@ -473,17 +473,6 @@
{/if}
- {section name=tool loop=$tools}
-
-
-
- {/section}
diff --git a/www/include/monitoring/objectDetails/template/serviceDetails.ihtml b/www/include/monitoring/objectDetails/template/serviceDetails.ihtml
index 26f018463c2..89e3ff470c7 100644
--- a/www/include/monitoring/objectDetails/template/serviceDetails.ihtml
+++ b/www/include/monitoring/objectDetails/template/serviceDetails.ihtml
@@ -127,31 +127,6 @@
-
-
-
- {if $tools}
-
-
- {if $tools}
- {section name=tool loop=$tools}
-
-
-
- {/section}
- {/if}
-
- {/if}
- |
-
{if $index_data}
diff --git a/www/include/monitoring/status/Services/xml/serviceXML.php b/www/include/monitoring/status/Services/xml/serviceXML.php
index e1dd44a1f9d..6b6eace8487 100644
--- a/www/include/monitoring/status/Services/xml/serviceXML.php
+++ b/www/include/monitoring/status/Services/xml/serviceXML.php
@@ -1,4 +1,5 @@
XML->writeElement("sc", $obj->colorService[$data["state"]]);
$obj->XML->writeElement("cs", _($obj->statusService[$data["state"]]), false);
$obj->XML->writeElement("ssc", $data["state"]);
- $obj->XML->writeElement("po", CentreonUtils::escapeSecure($pluginShortOuput));
+ $obj->XML->writeElement("po", htmlspecialchars(htmlspecialchars($pluginShortOuput)));
$obj->XML->writeElement(
"ca",
$data["current_attempt"] . "/" . $data["max_check_attempts"]
diff --git a/www/include/views/virtualMetrics/listVirtualMetrics.php b/www/include/views/virtualMetrics/listVirtualMetrics.php
index ecd56c962f3..38ea5717dfb 100644
--- a/www/include/views/virtualMetrics/listVirtualMetrics.php
+++ b/www/include/views/virtualMetrics/listVirtualMetrics.php
@@ -130,37 +130,45 @@
"\" maxlength=\"3\" size=\"3\" value='1' style=\"margin-bottom:0px;\" name='dupNbr[" .
$vmetric['vmetric_id'] . "]' />";
+ $indexDataStatement = $pearDBO->prepare("SELECT id,host_id,service_id FROM index_data " .
+ "WHERE id = :indexId ");
try {
- $query = "SELECT id,host_id,service_id FROM index_data WHERE id = '" . $vmetric['index_id'] . "'";
- $dbindd = $pearDBO->query($query);
+ $indexDataStatement->bindValue(':indexId', (int) $vmetric['index_id'], \PDO::PARAM_INT);
+ $indexDataStatement->execute();
} catch (\PDOException $e) {
print "DB Error : " . $e->getMessage() . " ";
}
- $indd = $dbindd->fetchRow();
- $dbindd->closeCursor();
- try {
- $query = "(SELECT concat(h.host_name,' > ',s.service_description) full_name " .
- "FROM host_service_relation AS hsr, host AS h, service AS s WHERE hsr.host_host_id = h.host_id " .
- "AND hsr.service_service_id = s.service_id AND h.host_id = '" . $indd["host_id"] .
- "' AND s.service_id = '" . $indd["service_id"] . "') UNION " .
- "(SELECT concat(h.host_name,' > ',s.service_description) full_name " .
- "FROM host_service_relation AS hsr, host AS h, service AS s, hostgroup_relation AS hr " .
- "WHERE hsr.hostgroup_hg_id = hr.hostgroup_hg_id AND hr.host_host_id = h.host_id " .
- "AND hsr.service_service_id = s.Service_id AND h.host_id = '" . $indd["host_id"] .
- "' AND s.service_id = '" . $indd["service_id"] . "') ORDER BY full_name";
- $dbhsrname = $pearDB->query($query);
- } catch (\PDOException $e) {
- print "DB Error : " . $e->getMessage() . " ";
+ $indd = $indexDataStatement->fetchRow();
+
+ $indexDataStatement->closeCursor();
+ if ($indd !== false) {
+ try {
+ $hsrStatement = $pearDB->prepare("(SELECT concat(h.host_name,' > ',s.service_description) full_name " .
+ "FROM host_service_relation AS hsr, host AS h, service AS s WHERE hsr.host_host_id = h.host_id " .
+ "AND hsr.service_service_id = s.service_id AND h.host_id = :hostId " .
+ "AND s.service_id = :serviceId ) UNION " .
+ "(SELECT concat(h.host_name,' > ',s.service_description) full_name " .
+ "FROM host_service_relation AS hsr, host AS h, service AS s, hostgroup_relation AS hr " .
+ "WHERE hsr.hostgroup_hg_id = hr.hostgroup_hg_id AND hr.host_host_id = h.host_id " .
+ "AND hsr.service_service_id = s.Service_id AND h.host_id = :hostId " .
+ "AND s.service_id = :serviceId ) ORDER BY full_name");
+
+ $hsrStatement->bindValue(':hostId', (int) $indd["host_id"], \PDO::PARAM_INT);
+ $hsrStatement->bindValue(':serviceId', (int) $indd["service_id"], \PDO::PARAM_INT);
+ $hsrStatement->execute();
+ } catch (\PDOException $e) {
+ print "DB Error : " . $e->getMessage() . " ";
+ }
+ $hsrname = $hsrStatement->fetchRow();
+ $hsrStatement->closeCursor();
+ $hsrname["full_name"] = str_replace('#S#', "/", $hsrname["full_name"]);
+ $hsrname["full_name"] = str_replace('#BS#', "\\", $hsrname["full_name"]);
}
- $hsrname = $dbhsrname->fetchRow();
- $dbhsrname->closeCursor();
- $hsrname["full_name"] = str_replace('#S#', "/", $hsrname["full_name"]);
- $hsrname["full_name"] = str_replace('#BS#', "\\", $hsrname["full_name"]);
### TODO : data_count
$elemArr[$i] = array(
"MenuClass" => "list_" . $style,
- "title" => $hsrname["full_name"],
+ "title" => $hsrname["full_name"] ?? null,
"RowMenu_select" => $selectedElements->toHtml(),
"RowMenu_ckstate" => $vmetric["ck_state"],
"RowMenu_name" => $vmetric["vmetric_name"],
diff --git a/www/install/insertBaseConf.sql b/www/install/insertBaseConf.sql
index 806031a0770..5a254f8d162 100644
--- a/www/install/insertBaseConf.sql
+++ b/www/install/insertBaseConf.sql
@@ -2,7 +2,7 @@
-- Insert version
--
-INSERT INTO `informations` (`key` ,`value`) VALUES ('version', '21.04.17');
+INSERT INTO `informations` (`key` ,`value`) VALUES ('version', '21.04.18');
--
-- Contenu de la table `contact`
diff --git a/www/install/php/Update-21.04.18.php b/www/install/php/Update-21.04.18.php
new file mode 100644
index 00000000000..9c56be77fd8
--- /dev/null
+++ b/www/install/php/Update-21.04.18.php
@@ -0,0 +1,21 @@
+ |