checkCentralAccess(); // Change profile system if (isset($_POST['newprofile'])) { if (isset($_SESSION["glpiprofiles"][$_POST['newprofile']])) { changeProfile($_POST['newprofile']); if ($_SESSION["glpiactiveprofile"]["interface"] == "helpdesk") { glpi_header($CFG_GLPI['root_doc'] . "/front/helpdesk.public.php"); } glpi_header($_SERVER['PHP_SELF']); } glpi_header(preg_replace("/entities_id.*/", "", $_SERVER['HTTP_REFERER'])); } // Manage entity change if (isset($_GET["active_entity"])) { if (!isset($_GET["is_recursive"])) { $_GET["is_recursive"] = 0; } if (changeActiveEntities($_GET["active_entity"], $_GET["is_recursive"])) { if ($_GET["active_entity"] == $_SESSION["glpiactive_entity"] && isset($_SERVER['HTTP_REFERER'])) { glpi_header(preg_replace("/entities_id.*/", "", $_SERVER['HTTP_REFERER'])); } } } commonHeader($LANG['common'][56], $_SERVER['PHP_SELF']); // Redirect management if (isset($_GET["redirect"])) { manageRedirect($_GET["redirect"]); } $central = new Central(); $central->show(); commonFooter();
/** * Change active profile to the $ID one. Update glpiactiveprofile session variable. * * @param $ID : ID of the new profile * * @return Nothing **/ function changeProfile($ID) { if (isset($_SESSION['glpiprofiles'][$ID]) && count($_SESSION['glpiprofiles'][$ID]['entities'])) { $profile = new Profile(); if ($profile->getFromDB($ID)) { $profile->cleanProfile(); $data = $profile->fields; $data['entities'] = $_SESSION['glpiprofiles'][$ID]['entities']; $_SESSION['glpiactiveprofile'] = $data; $_SESSION['glpiactiveentities'] = array(); Search::resetSaveSearch(); $active_entity_done = false; // Try to load default entity if it is a root entity foreach ($data['entities'] as $key => $val) { if ($val['id'] == $_SESSION["glpidefault_entity"]) { if (changeActiveEntities($val['id'], $val['is_recursive'])) { $active_entity_done = true; } } } if (!$active_entity_done) { // Try to load default entity if (!changeActiveEntities($_SESSION["glpidefault_entity"], true)) { // Load all entities changeActiveEntities("all"); } } doHook("change_profile"); } } // Clean specific datas if (isset($_SESSION['glpi_faqcategories'])) { unset($_SESSION['glpi_faqcategories']); } }
static function getItemsDynamicly($parm) { global $DB; $pmCc_Rule = new PluginMonitoringComponentscatalog_rule(); $pmComponentscatalog_Host = new PluginMonitoringComponentscatalog_Host(); $pmComponentscatalog = new PluginMonitoringComponentscatalog(); $devices_present = array(); if ($pmCc_Rule->getFromDB($parm->fields['id'])) { // Load right entity $pmComponentscatalog->getFromDB($pmCc_Rule->fields['plugin_monitoring_componentscalalog_id']); $default_entity = 0; if (isset($_SESSION['glpiactive_entity'])) { $default_entity = $_SESSION['glpiactive_entity']; } $entities_isrecursive = 0; if (isset($_SESSION['glpiactiveentities']) and count($_SESSION['glpiactiveentities']) > 1) { $entities_isrecursive = 1; } changeActiveEntities($pmComponentscatalog->fields['entities_id'], $pmComponentscatalog->fields['is_recursive']); $get_tmp = ''; $itemtype = $pmCc_Rule->fields['itemtype']; if (isset($_GET)) { $get_tmp = $_GET; } if (isset($_SESSION["glpisearchcount"][$pmCc_Rule->fields['itemtype']])) { unset($_SESSION["glpisearchcount"][$pmCc_Rule->fields['itemtype']]); } if (isset($_SESSION["glpisearchcount2"][$pmCc_Rule->fields['itemtype']])) { unset($_SESSION["glpisearchcount2"][$pmCc_Rule->fields['itemtype']]); } $_GET = importArrayFromDB($pmCc_Rule->fields['condition']); $_GET["glpisearchcount"] = count($_GET['field']); if (isset($_GET['field2'])) { $_GET["glpisearchcount2"] = count($_GET['field2']); } Search::manageGetValues($pmCc_Rule->fields['itemtype']); $queryd = "SELECT * FROM `glpi_plugin_monitoring_componentscatalogs_hosts`\n WHERE `plugin_monitoring_componentscalalog_id`='" . $pmCc_Rule->fields["plugin_monitoring_componentscalalog_id"] . "'\n AND `itemtype`='" . $pmCc_Rule->fields['itemtype'] . "'\n AND `is_static`='0'"; $result = $DB->query($queryd); while ($data = $DB->fetch_array($result)) { $devices_present[$data['id']] = 1; } $glpilist_limit = $_SESSION['glpilist_limit']; $_SESSION['glpilist_limit'] = 500000; $result = $pmCc_Rule->constructSQL($itemtype, $_GET); $_SESSION['glpilist_limit'] = $glpilist_limit; while ($data = $DB->fetch_array($result)) { $networkports_id = 0; $itemtype_device = $pmCc_Rule->fields['itemtype']; $items_id_device = $data['id']; if ($itemtype_device == 'PluginMonitoringNetworkport') { $pmNetworkport = new PluginMonitoringNetworkport(); $pmNetworkport->getFromDB($data['id']); $itemtype_device = $pmNetworkport->fields['itemtype']; $items_id_device = $pmNetworkport->fields['items_id']; $networkports_id = $pmNetworkport->fields['networkports_id']; } $queryh = "SELECT * FROM `glpi_plugin_monitoring_componentscatalogs_hosts`\n WHERE `plugin_monitoring_componentscalalog_id`='" . $pmCc_Rule->fields["plugin_monitoring_componentscalalog_id"] . "'\n AND `itemtype`='" . $itemtype_device . "'\n AND `items_id`='" . $items_id_device . "'\n LIMIT 1"; $resulth = $DB->query($queryh); if ($DB->numrows($resulth) == '0') { $input = array(); $input['plugin_monitoring_componentscalalog_id'] = $pmCc_Rule->fields["plugin_monitoring_componentscalalog_id"]; $input['is_static'] = '0'; $input['items_id'] = $items_id_device; $input['itemtype'] = $itemtype_device; $componentscatalogs_hosts_id = $pmComponentscatalog_Host->add($input); $pmComponentscatalog_Host->linkComponentsToItem($pmCc_Rule->fields["plugin_monitoring_componentscalalog_id"], $componentscatalogs_hosts_id, $networkports_id); } else { $data2 = $DB->fetch_assoc($resulth); // modify entity of services (if entity of device is changed) $itemtype = $data2['itemtype']; $item = new $itemtype(); $item->getFromDB($data2['items_id']); $queryu = "UPDATE `glpi_plugin_monitoring_services`\n SET `entities_id`='" . $item->fields['entities_id'] . "'\n WHERE `plugin_monitoring_componentscatalogs_hosts_id`='" . $data2['id'] . "'"; $DB->query($queryu); unset($devices_present[$data2['id']]); } } // Reload current entity changeActiveEntities($default_entity, $entities_isrecursive); } else { // Purge $queryd = "SELECT * FROM `glpi_plugin_monitoring_componentscatalogs_hosts`\n WHERE `plugin_monitoring_componentscalalog_id`='" . $parm->fields["plugin_monitoring_componentscalalog_id"] . "'\n AND `itemtype`='" . $parm->fields['itemtype'] . "'\n AND `is_static`='0'"; $result = $DB->query($queryd); while ($data = $DB->fetch_array($result)) { $devices_present[$data['id']] = 1; } } foreach ($devices_present as $id => $num) { $pmComponentscatalog_Host->delete(array('id' => $id)); } }